gn#36 hat geschrieben:Naja nachdem du dich ja nun mit Multithreading auskennst kannst du ja auch einen Thread bauen der die Oberfläche darstellt (das solltest du sogar, denn wenn du das nicht tust friert die GUI während der Berechnung ein, auch wenn das natürlich bedeutet, dass sie keine Ressourcen frisst). Wenn du vernünftige Bibliotheken für die Oberfläche benutzt ist das auch nicht sonderlich schwierig, GTK+, QT oder - sofern du Visual Studio verwenden solltest auch die Microsofteigenen Bibliotheken sind nicht all zu schwierig. Pauschal lässt sich jedenfalls auch nicht sagen was mehr bremst, das hängt vor allem davon ab wie viele Ressourcen die GUI frisst. Je aufwändiger die Gui desto stärker bremst sie würde ich sagen. Ich kann zwar nicht beurteilen wie viel Overhead ein Delphi Programm produziert, ein Thread dürfte aber jedenfalls deutlich effizienter sein als ein eigener Prozess, denn bei dem Wechsel auf einen anderen Prozess muss der andere Prozess unterbrochen werden, die Register kopiert und der neue Prozess gestartet werden, außerdem müssen ggf. Speicherseiten ausgetauscht werden. Zumindest letzteres fällt bei einer threadbasierten Version weg (auf den anderen Thread muss ja trotzdem noch gewechselt werden). Aus dem Grund ist es auch nicht sinnvoll für ein und die selbe Berechnung mehr Threads zu verwenden als Kerne zur Verfügung stehen. Jeder weitere Thread bremst nur, denn es muss ja zusätzlich gewechselt werden. Trotzdem bremst ein separater Prozess mehr, also würde ich sagen, wenn du es mit einer effizienten GUI Programmieren willst, dann nimm einen Thread und nicht Delphi.
Achso, also wäre es letztendlich dann vielleicht doch mit C++ besser...
Solltest du Visual Studio haben oder eine der oben genannten Bibliotheken verwenden, dann dürftest du auf die eine oder andere Weise dir die GUI sogar zusammenklicken können und dann nur noch auf die Events reagieren müssen (bei GTK+ gibt's z.B. Glade, in Visual Studio ist was entsprechendes integriert und es würde mich sehr wundern wenn es irgendwie sowas für QT nicht auch gäbe).
Ich hatte mir Micrsofot Visual Studio C++ installiert, aber immer, wenn ich ein Formular erstellen wollte, gab es eine Fehlermeldung vom Programm. Habs deswegen auch vor 2-3 Wochen wieder deinstalliert... Aber dann guck ich mal, wie das mit GTK+ und Glade ist
Long int reicht nur ein bisschen länger als int, stößt aber irgendwann auch an seine Grenzen, wenn du wirklich Verschlüsselung damit betreiben willst brauchst du vermutlich Primzahlen mit einigen hundert Stellen, da reicht das auch nicht mehr. Such einfach mal nach Big Integer c++ da sollte sich einiges an Bibliotheken finden, wenn du dann deine Primzahlprüfung auf den Modulo Operator umbaust wie das schon vorher diskutiert wurde, dann brauchst du vermutlich nicht mal selbst irgendwelche Änderungen an den Bibliotheken machen.
Naja, also mir reichen vorerst schon die Primzahlen bis 1.000.000.000 und für diese brauch ich ja vorerst keine anderen Bibliotheken. Aber ich werds im Kopf behalten, um dann später eventuell das Programm doch noch umzustellen
Wer der Meinung ist, dass ein Konsoleprogramm allgemein schwächer ist als eines mit GUI, dann zeigt er damit nur, dass er absolut keine Ahnung von Computern hat. Denn erstens kann man sowas nie pauschal beurteilen und zweitens sind Konsoleprogramme spätestens wenn man weitergehende Automatisierung oder blitzschnelle Bedienung wünscht absolut unschlagbar - nicht umsonst arbeiten die meisten Server Admins mit Konsolen und auch eine Reisebürokette und eine Versicherungsgesellschaft denen ich zufällig mal auf den Bildschirm blicken durfte hatten dort "nur" einen Konsolecursor blinken. Dafür muss man dann die Hand nicht mehr von der Tastatur nehmen um das Programm zu bedienen und wenn man einen Befehl zum 100x mal verwendet hat kann man ihn spätestens auch blind auswendig und bei logischer Programmführung geht das ganze dann auch 100x so schnell wie wenn man sich mit einer Maus durchklicken müsste. Das ist nichts für ein Programm das man nur ein mal im Jahr braucht - aber wenn man ein Programm täglich einsetzt ist es eine enorme Erleichterung.
Meine Meinung, aber nicht die Meinung von diversen anderen Leuten

Ich persönlich finde sogar Batch-Dateien schon recht praktisch, da diese ja auch sehr einfach funktionieren... Bei meinem Praktikum hatte ich sogar mal eine Batch-Datei geschrieben, die im Krankenhaus jetzt bei allen PCs eingesetzt wird. War jetzt nur eine "kleinere" Sache, weil nur die IPs und die Computernamen und noch ein paar Informationen mehr (vnc viewer installer[ja/nein]) rausgefunden werden sollten und auf dem server in einem extra ordner gespeichert werden sollten, aber ich bin trotzdem stolz drauf
Aus dem Grund ist Konsistenz bei Programmen die man einsetzt auch enorm wichtig. Wenn man es gewöhnt ist mit der Tastenkombination Strg + C den gewählten Abschnitt zu kopieren dann stört es natürlich enorm wenn das dazu führt dass das Programm beendet wird. Genauso ist es andersherum (und beide Szenarien sind Täglich Brot für viele Leute, denn in Konsolen hat Strg + C die eine, in GUIs die andere Bedeutung, jedenfalls meistens). Wenn du also mehr Programme schreibst, dann solltest du versuchen dich an gewisse Konventionen zu halten, dadurch kommen die Leute viel schneller mit deinem Programm klar als wenn du das Rad neu erfindest was die Bedienung angeht.
Ja, aber ich habe sowieso erstmal nicht vor, Tastenkombinationen zu definiern, weil die brauch man für mein Programm nun wirklich nicht.
Die Krone des ganzen sind dann die alten VIM Meister, die - während man noch überlegt wie der Dateiname der Datei war die er gerade aufgerufen hat - schon in drei weiteren Dateien irgendwelche komplizierten Suchen und Ersetzungen durchgeführt hat.
Hm, ist das jetzt gut oder schlecht?
Achja: Hab mir jetzt Glade und GTK+ für Windows runtergeladen. In den Zip-Ordnern waren keine Installer, also hab ich auf dem desktop einfach den ordner "Glade" erstellt und dort die entsprechenden dateien alle reingetan. Sowohl von Glade, als auch die von GTK+. Wenn ich nun die Datei "glade-3.exe" im bin-Ordner ausführen möchte, kommt eine Fehlermeldung, weil libatk-1.0-0.dll nicht gefunden werden kann.
Brauch ich erst ein anderes Programm oder sowas, oder wieso fehlen bei mir Dateien?
Ich hab sowohl mit GTK+, als auch mit Glade noch nich was zu tun gehabt, also sorry für diese dumme Frage...
