Zugewiesener Speicher erhöhen
-
Du hast uns immer noch nix von deinem Programm gezeigt (was Hilfe erst ermöglichen würde).
-
Heinz123123 schrieb:
Ja schuldigung ...
manchmal krieg ich deswegen stundenlang keine Antwort, weil einer wieder fragen muss: "Was willst du denn damit ??" oder "Hä versteh ich nicht??"
Das ging mir aufn Sack!!
:D:D:D:D:D:D
Die Frage: "Was willst Du denn damit" kommt meistens wenn Leute etwas total absurdes Fragen und "Hä, versteh ich nicht" liegt, wie auch in diesem Fall daran weil Du das Problem absolut nicht beschreibst.
-
Ich denke dass wie Firefighter bereits gesagt hat, das Problem ist dass seine CPU nicht mehr hergibt ^^... was allerhöchstens noch auszubügeln ist dann, mit schnellerem Code weil der entweder nimmt das Programm sich Speicher oder nicht, der ist nicht begrenzt.
-
Heinz123123 schrieb:
Ach übrigens, mit Thread gehts auch nicht schneller !
Hier wäre noch zu klären, wie genau du das gemacht hast (na ja, eigentlich wäre erst mal zu klären, was du überhaupt machst
). Du meinst hoffentlich nicht einen Thread, wie du es geschrieben hast. Und auch mit mehreren Threads gehts nur schneller, wenn man es richtig macht. Wenn du für jeden "Job" erst mal einen Thread erzeugst, ihn arbeiten lässt und ihn dann schließt, um dann den nächsten zu erzeugen, geht das natürlich in die Hose. Je nach Laufdauer eines Threads geht die Performance dabei ziemlich nach unten, da der Overhead (Thread erzeugen+beenden) auch Laufzeit frisst. Du müsstest eine bestimmte Anzahl an Threads (z.B. Anzahl der vorhandenen Kerne) erzeugen und dann füttern, und erst am Ende beendest du sie alle. Dann ist meist ein deutlicher Performance-Gewinn drin.
-
_matze schrieb:
Heinz123123 schrieb:
Ach übrigens, mit Thread gehts auch nicht schneller !
Hier wäre noch zu klären, wie genau du das gemacht hast (na ja, eigentlich wäre erst mal zu klären, was du überhaupt machst
). Du meinst hoffentlich nicht einen Thread, wie du es geschrieben hast. Und auch mit mehreren Threads gehts nur schneller, wenn man es richtig macht. Wenn du für jeden "Job" erst mal einen Thread erzeugst, ihn arbeiten lässt und ihn dann schließt, um dann den nächsten zu erzeugen, geht das natürlich in die Hose. Je nach Laufdauer eines Threads geht die Performance dabei ziemlich nach unten, da der Overhead (Thread erzeugen+beenden) auch Laufzeit frisst. Du müsstest eine bestimmte Anzahl an Threads (z.B. Anzahl der vorhandenen Kerne) erzeugen und dann füttern, und erst am Ende beendest du sie alle. Dann ist meist ein deutlicher Performance-Gewinn drin.
drücken wir es anders aus ... Thread beschleunigen nicht - sie Parallelisieren
-
man das ist doch sonnenklar!
Wenn der Speicher nicht genug ist hat der algo auch keinen platz, was dazu führt, dass der algo immer im Speicher ausgetauscht werden muss!
an den TE: schon mal was von new und malloc gehört? new(größe des rams). Außerdem hiper active polirasition aktivieren sonst ist das langsam!
-
Heinz123123 schrieb:
mit Thread gehts auch nicht schneller !
mogel schrieb:
Thread beschleunigen nicht
Sagt mal, hat eure s-Taste einen Wackelkontakt?
-
@NullBockException: Nutz nich mein Nick;)
Um das ganze zu parallelisieren, muss es erst mal möglich sein den algorithmus soweit umzudesignen damit er mutlithreading konform is.
-
Lat Heinz123123 konkret werden, bevor ihr weiter antwortet. So bringt da nicht.
-
Also, ich würde zum Problem tatsächlich den Code posten.
Der Code (dynamisch oder statisch) verursacht immer einen
ganz bestimmten Speicherbedarf. Der Speicherbedarf ergibt
sich aus dem Code- und dem Datensegment. Wenn einfach mehr
Speicher allociert, wird deshalb das Programm nicht automatisch
schneller.Was ich so rausgelesen habe ist, dass der Code zu langsam ist.
Hierzu kann ich folgendes sagen:Oft werden Arrays benutzt, um bestimmte Zahlen zu verarbeiten. Dies
kann mit einer Pointeradressierung u.U. deutlich beschleunigt werden.
Außerdem könnte die Zahlengenerierung durch bestimmte mathematische
Operationen beeinflusst werden. Ob hier eine Alternative eine
Verbesserung bringt, könnte ebenfalls untersucht werden.
Um dies beurteilen zu können, wäre ein Codeschnipsel schon gut.
-
NullBockException schrieb:
..
an den TE: schon mal was von new und malloc gehört?...malloc gibts bei C# nicht.
-
@Burkhi: Stimmt, malloc gibt es nicht in C#.
Jeder weis aber, dass malloc für die Speicherreservierung steht bzw. stehen sollte. (Ich glaube, das Thema hat sich sowieso erledigt.)