Programm verbraucht unter Linux mehr als bei Windows
Übersicht

![]() |
klinBetreff: Programm verbraucht unter Linux mehr als bei Windows |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo leute,
ich habe mir mal nen Spiele Server programmiert. Ich habe es bei mir die ganze Zeit unter Windows programmiert und lief 1A mit 0% CPU. Jedoch als ich es dann auf der Linux kiste starten wollte, erhöhte sich die CPU schalgartig auf 30% sobald ich mich bewege! Dabei schreibe ich nichts auf die Festplatte oder sonst was. Ich habe echt alle versucht... Doch trotzdem verbraucht der Server unter Linux wie bescheuert! Aber unter Windows... kaum was :/ Was mir auch noch aufgefallen ist, dass es fast nur passiert wenn der Server empfängt (Bnetex). Hatte jemand schonmal solch ein Problem? Muss ich in Zukunft auf i-was achten bei der Linux Programmierung (weil es ja bei Windows 1A läuft)? Weil ich habe ehrlich gesagt 0 bock 10€ mehr zu bezahlen nur weil auf meinem Server Windoof drauf ist ![]() THX MFG Klin |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Welchen Grafiktreiber verwendest du unter Linux?
Es könnte an OpenGL liegen, da es auch unter Windows mehr CPU-Leistung verbraucht als DirectX. mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
klin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Leider ist es eine reine Konsolenanwendung. Außerdem habe ich nun gefunden wodran es liegt.. kann es aber nicht beheben. sobald ich eine While schleife OHNE Delay mache, zieht es autom. CPU :/ Und in der Recive schleife kann ich kein Delay reinhauen, da er sonst nurnoch stehen bleibt.
Vill. ists ja nur ein Bmax fehler... Naja.. ich bin schon dabei mir einen Windows Server zu besorgen :'( Achja.. ich habe sehr viele versuche gestartet. Latenz: 00% bei Windows; Flooden: 03% bei Windows;nix machen: 00% bei Windows;EMPFANGEN:00% Latenz: ka% bei Linux;FLooden: 50% bei Linux; nix machen: 01% bei Linux;EMPFANGEN:16% Das empfangen ist natürlich in der While schleife drinnen, damit alle Packete ausgelesen werden. Ich weiß leider nicht mehr weiter und kaufe mir lieber nen Windows Server anstatt mich nun so drüber aufzuregen. MFG Klin |
||
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie wäre es mit einem Timer?
BlitzMax: [AUSKLAPPEN] Local Timer:TTimer = CreateTimer(60) Hoffe der Code stimmt habe ihn grade ohne zu testen geschrieben. MfG ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
![]() |
klin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das bringt nichts. Wegen dem Empfangen. Der Empfängt alle Packete in einer schleife. Und da komme ich nicht drum herum. Mit der Main Schleife hat das ja nichts zu tun. Und wenn ich in der Empfangs schleife einen Timer reinmache... Das ist extrem unklug. Denn es kommen packete.. Und diese werden jedesmal abgerufen. Wenn dann noch ein Timer das verarbeiten anhält, gibt eine extreme Verzögerung!
MFG Klin |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann lass den Timer nur dann arbeiten, wenn keine Pakete ankommen. | ||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
klin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Genau das habe ich ja auch gemacht. Jedoch wenn kein Timer drinnen ist (bei empfangen), verbraucht es ja CPU! Und das seehhr viel bei Linux. Bei Windows jedoch kaum (00%).
Also hat niemand einen vorschlag? Bzw. könnte dies ein ein Bmax fehler sein? Oder liegt es wirklich an Linux? Weil ich meine, wenn eine schleife 17% CPU (inkl. speed verlust) verbaucht und bei Windows 00%... das ist schon ein wenig eigenartig. MFG Klin |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie wartest du auf neue Daten, und welche Netzwerk-Lib verwendest du? | ||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Seine Netzwerk-Lib:
Zitat: [...] wenn der Server empfängt (Bnetex).
|
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
hamZtaAdministrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ohne Code kann man schwer viel dazu sagen ohne rumzuraten.
Probier den "Fehler" zu isolieren und zeig uns dann den Code. lg, hamZta |
||
Blog. |
![]() |
klin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist es nur eben ohne Packete. Jedoch verbraucht er CPU beim Empfangen (auch ohne ausfilterung):
BlitzBasic: [AUSKLAPPEN]
Ich kann keinen Timer einsetzten, kein Delay... Was denn? THX MFG Klin |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du könntest per select auf dem socket auf daten warten. Was BNetEx aber eigentlich selber machen sollte. Nimm mal die neuste Version, fals du sie noch nicht hast. | ||
![]() |
klin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe die neuste Version mit der neusten Bmax version.. und wie gesagt: Unter Windows gehts ![]() THX MFG Klin |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group