Ich brauche Hilfe! Ich kann das Problem nicht lösen, ich stoße an die Grenzen der Hardware - Seite 21

 
elugovoy:
Vielleicht Millisekunden? Auf Windows-basierten Betriebssystemen kann die Messung in Mikrosekunden einfach nicht durchgeführt werden...

Tut mir leid, aber nur weil Sie nicht wissen, wie es geht, heißt das nicht, dass es nicht möglich ist:

Der Code, den Yurich verwendet, sogar im Terminal:

#import "kernel32.dll"
bool QueryPerformanceCounter(ulong &ticks);
bool QueryPerformanceFrequency(ulong &freq);
#import
//---
void OnStart()
{
   ulong t1, t2, st;
   QueryPerformanceFrequency(st);
   if(st>1000)
   {
      st=(ulong)1 e9/st;
      QueryPerformanceCounter(t1);
      Sleep(20);
      QueryPerformanceCounter(t2);
      Print("Tик таймера=",st," нс. // Sleep(20) = ",(t2-t1)*st," нс.");
   }else Print("Таймер высокого разрешения не поддерживается");
}

http://msdn.microsoft.com/en-us/library/windows/desktop/dn553408

Acquiring high-resolution time stamps (Windows)
Acquiring high-resolution time stamps (Windows)
  • msdn.microsoft.com
QPC is independent of and isn't synchronized to any external time reference. To retrieve time stamps that can be synchronized to an external time reference, such as, Coordinated Universal Time (UTC) for use in high-resolution time-of-day measurements, use GetSystemTimePreciseAsFileTime. Time stamps and time-interval measurements are an...
 
Mikalas:

Ich will die Fähigkeiten und Möglichkeiten des Terminals nicht unterbewerten, aber

als ich vor ein paar Jahren Daten aus einer 1,21 GB großen Datei mit 21.345.728(!) Zeilen extrahieren musste,

Versuchen Sie es noch einmal. In zwei Jahren wurde die MQL4-Sprache (sofern sie verwendet wird) komplett umgeschrieben und die Dateibearbeitung völlig neu gestaltet.


Die Suchzeit betrug 35-45 MIKROSECUNDS nach der von mir genannten Methode,
Welche Methode genau?
 
Renat:
Versuchen Sie es noch einmal. In zwei Jahren wurde die MQL4-Sprache (sofern sie darauf aufbaut) komplett neu geschrieben und die Dateiarbeit wurde komplett umgeschrieben.


Welche Methode genau?

Die Methode zur Aufbereitung der Daten.

In meinem Fall sah es folgendermaßen aus:

 
Mikalas:

Die Methode zur Aufbereitung der Daten.

In meinem Fall sah es folgendermaßen aus:

In Ihrem Fall nehmen Sie einfach den MT5 x64 und lesen alles in einem Stück in den Speicher ein. Dann ein schneller One-Pass-Scan zu den rechten Rändern, um die Offsets aufzuzeichnen.

Im Jahr 2014 wird eine Datei mit einem gewissen Umfang niemanden abschrecken.

 
Renat:

In Ihrem Fall nehmen Sie einfach MT5 x64 und lesen alles in einem Stück in den Speicher. Dann ein schneller One-Pass-Scan zu den rechten Rändern, um die Offsets aufzuzeichnen.

Im Jahr 2014 schreckt die Datei eines Auftritts niemanden mehr ab.

Danke, aber nicht ich habe ein Problem, sondern Komposter hat ein Problem.

Ich habe Ihnen schon einmal gesagt, wie ich das Problem gelöst habe (nur einmal, mehr ist nicht nötig).

P/S Ich kann nicht einmal meinen Quellcode im Archiv finden, um ihn dem Komposter zu geben.

als Beispiel.

 
Mikalas:

Tut mir leid, aber nur weil Sie nicht wissen, wie es geht, heißt das nicht, dass es nicht möglich ist:

Der Code, den Yurich verwendet, sogar im Terminal:

http://msdn.microsoft.com/en-us/library/windows/desktop/dn553408

Danke, das wusste ich wirklich nicht. Ich werde mir diese Uhr demnächst einmal ansehen.