Ich habe eine CSV-Datei von ca. 1 GB in mehreren Programmiersprachen gelesen / geschrieben und sie zeitlich festgelegt!
--Überprüfen Sie, ob in allen Sprachen dieselbe Datei verwendet wird --Lesen Sie die Datei Zeile für Zeile und schreiben Sie sie Zeile für Zeile
Sprache | Durchschnittliche Laufzeit 5-mal(Sekunden) |
---|---|
C-lang | 6.2962 |
C++ | 6.0538 |
C# | 17.1798 |
Golang | 10.3966 |
Java | 21.0840 |
Python | 32.6949 |
Ruby | 30.7153 |
Scala | 21.8364 |
Immerhin ist C / C ++ bei weitem das schnellste! !! Gehen Sie Sprache auf den zweiten Platz
Ich habe C ++ zum ersten Mal seit 5 Jahren geschrieben, daher finde ich es nicht schön, aber da es das schnellste war, werde ich es als Beispiel veröffentlichen.
Ich habe es basierend auf dem folgenden Verhalten in anderen Sprachen implementiert.
--Berechnen Sie die durchschnittliche Zeit, die fünfmal ausgeführt wird
#include <iostream>
#include <fstream>
#include <time.h>
#include <iomanip>
using namespace std;
int main(int argc, char *argv[])
{
cout << "START!!!" << endl;
clock_t start, end;
double time, sum = 0;
int count = 5;
for (int i = 0; i < count; i++)
{
start = clock();
ifstream ifs("/fixtures/sample.csv");
ofstream ofs("./sample.csv");
const int SIZE = 1024;
char buffer[SIZE];
while (ifs.getline(buffer, SIZE))
{
// ofs << buffer << endl;Es ist sehr langsam
ofs << buffer << "\n";
}
end = clock();
time = (double)(end - start) / CLOCKS_PER_SEC;
cout << "Time Result: ";
cout << fixed << setprecision(4) << time << endl;
sum += time;
}
cout << "C++ Average: ";
cout << fixed << setprecision(4) << sum / count << endl;
return 0;
}
Wie in den Kommentaren in der Quelle erwähnt, verursachte das Schreiben mit ofs << buffer << endl;
in C ++ ein Problem, dass die Geschwindigkeit erheblich verlangsamt wurde, sodass ich den Zeilenvorschubcode selbst hinzufügte.
Wie erwartet war das Ergebnis C / C ++. Da Ruby und Python Skriptsprachen sind, dachte ich, es wäre langsam, aber es war immer noch langsam. (Vielleicht ist es eine Frage meines Schreibens) Die Go-Sprache war so schnell, dass ich sie bei der Arbeit noch nie benutzt hatte, aber ich war sehr daran interessiert!
Eigentlich wollte ich Rust machen, aber ich war frustriert, weil ich es aufgrund mangelnden Wissens zur Hälfte implementiert hatte, also habe ich es diesmal ausgeschlossen. Rost Wir warten immer auf PR von geliebten Menschen!
Wenn es eine Schreibweise gibt, die schneller als meine Implementierung ausgeführt werden kann und das Ergebnis von diesem Ranking abweicht, warte ich auf PR! (Ich würde es begrüßen, wenn das Grundkonzept gleich bleibt)
https://github.com/MasanoriIwakura/multi-lang-battle
Recommended Posts