Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
EverNoob

Anmeldungsdatum: 23.10.2005 Beiträge: 15
|
Verfasst am: 26.11.2005, 20:53 Titel: Problem mit WLAN Verbindung und selbst geschriebene FBProgs |
|
|
Hallo,
ich lerne gerade in FB zu programmieren und hab ein Problem mit selbst geschriebenen Programmen....
Nach einigen durchläufen von Programmen die ich in FB geschrieben habe, verliert mein Wlan Adapter plötzlich die Verbinden mit dem Router. Dieses Problem taucht nur auf wenn ich in FB geschriebene Programme laufen lasse.
Hat jemand ne Idee voran es liegen könnte?
Hier ein Beispiel
http://mitglied.lycos.de/enterpriseforum/progs/Systembench.rar
P.s. Ich benutze die FBIde 0.4.3 und die FBC Version 0.14
Zuletzt bearbeitet von EverNoob am 27.11.2005, 12:47, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 27.11.2005, 03:53 Titel: |
|
|
Servus.
Aaaalso, zwei Sachen:
Ich hab nen T-Sinus-111-WLan-Paket zu Hause (also USB-Adapter wie Router), und die Verbindung ist _nicht_ abgerissen, im Gegenteil, ist von 33% "Verbindungsqualität" auf 40% gestiegen - ehrlichgesagt zweifle ich allerdings, dass das an deinem Programm liegt
Des weiteren: Du hast da einen Denkfehler in deinem Programm. "print" selber benötigt (zumindest relativ) viel Rechenzeit - probiers aus: Vergleich mal das Ergebniss deines Benchmarks wenn a) nach jedem "loop" ein "print" kommt, oder wenn b) erst am ende der 30 (?) Sekunden die Zahl der Durchläufe ausgegeben wird.
(Genaue Erklärung für Klugscheisser: du misst nicht die Menge der "line"s in 30 Sekunden, sondern die Menge der "line + print"s in 30 Sekunden. Da diese Zahl zumindest bei mir in die hunderttausende geht, machen schon die Millisekunden für ein "print" in der Summe ordentliche Messfehler aus. Mit den Worten meines Physiklehrers: "Wer misst, misst Mist!")
Gruß
Lutz Ifer
ps: nette grafik  |
|
Nach oben |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 27.11.2005, 11:59 Titel: |
|
|
Vielleicht liegts ja wirklich am Compiler oder der IDE.
Ich würde einfach mal mir die neuste Version von beiden besorgen. _________________ www.piratenpartei.de |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 27.11.2005, 12:15 Titel: |
|
|
@Devilkevin
EverNoob hat Folgendes geschrieben: | P.s. Ich benutze die FBIde 0.4.3 und die FBC Version 0.14 |
Das ist absolut in ordnung, weil die Testing Version von Freebasic hat keine relaventen änderungen in dem Gebiet .
Nun zum Eigentlichen Problem:
Ich kenne das Problem in einer Variante:
Als ich eines meiner Programme unter Linux kompletiert habe, ruckelte das Programm wie blöd, die Lösung war in die Hautpschleife eine Sleep 1 einzubauen, dann läuft Programm rund.
Unter Windows ist der Effekt ähnlich, die Prozessorlast sank von 100% auf 0%, ich vermute das es auch bei dir gehen könnte.
Probiermal diese zwei Programme aus:
Code: | Do
Print "Test"
Loop |
Code: | Do
Print "Test"
sleep 1
Loop |
beim zweiten Programm sollte die Verbindung nicht mehr abbrechen.
Kurze Erklärung noch:
sleep 1 bewirkt eine Pause von 1ms also 0.001 Sekunden, in dieser Zeit kann das Betriebssystem sozusagen "verschnaufen" und anderen Programmen Rechenzeit geben.
Edit:
SystemBenchmark.bas hat Folgendes geschrieben: | Code: | # __FB_WIN32__
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''Marcel Scheele Kleines Benchmark und CPU Auslastungsgenerator Proggi ''
''Erzeugt auf A64 Prozessoren 100% Prozessorlast ''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' |
|
Also darum ...
Dann musst du wohl beim Benchmark Programm damit leben ... _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Zuletzt bearbeitet von Michael Frey am 27.11.2005, 12:25, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
EverNoob

Anmeldungsdatum: 23.10.2005 Beiträge: 15
|
Verfasst am: 27.11.2005, 12:24 Titel: |
|
|
Lutz Ifer hat Folgendes geschrieben: | Servus.
Aaaalso, zwei Sachen:
Ich hab nen T-Sinus-111-WLan-Paket zu Hause (also USB-Adapter wie Router), und die Verbindung ist _nicht_ abgerissen, im Gegenteil, ist von 33% "Verbindungsqualität" auf 40% gestiegen - ehrlichgesagt zweifle ich allerdings, dass das an deinem Programm liegt
Des weiteren: Du hast da einen Denkfehler in deinem Programm. "print" selber benötigt (zumindest relativ) viel Rechenzeit - probiers aus: Vergleich mal das Ergebniss deines Benchmarks wenn a) nach jedem "loop" ein "print" kommt, oder wenn b) erst am ende der 30 (?) Sekunden die Zahl der Durchläufe ausgegeben wird.
(Genaue Erklärung für Klugscheisser: du misst nicht die Menge der "line"s in 30 Sekunden, sondern die Menge der "line + print"s in 30 Sekunden. Da diese Zahl zumindest bei mir in die hunderttausende geht, machen schon die Millisekunden für ein "print" in der Summe ordentliche Messfehler aus. Mit den Worten meines Physiklehrers: "Wer misst, misst Mist!")
Gruß
Lutz Ifer
ps: nette grafik  |
Hallo,
Doch ich kann mit ziemlicher Sicherheit andere Ursachen ausschließen, da ich das Programm auch schon an 2 anderen Rechnern (Centrino NB usw.) getestet hab und den gleichen Fehler reproduzieren konnte...
Nimm den Zweck des Programmes mal nicht soo ernst.. Das die Methode nicht so ganz das wahre ist ist mir klar. Der Code ist vielmehr ein Sammelsurium von Codeschnipseln die ich im laufe meines Übens so prduziert hab... Das Programm hab ich seitdem auch schon 3 mal komplett umgeschrieben... (von goto zur gosub Methode und zur sub/end sub usw.)... |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 27.11.2005, 12:31 Titel: |
|
|
Ich hab wie gesagt, das Gefühl, das dein WLAN Treiber oder die WLAN Karte einfach zuwenig rechenzeit abbekommt, wenn du 100% der Rechenzeit für irgendeinen Benchmark verbrauchst ...
Es kann auch sein, das deine Basisstation alle x-Sekunden eine Meldung will und du diese eben mit der 100% Prozessorlast abwürgst, weil WIndows meint dein Programm sei wichtiger als WLAN.
Etwas frage ich mich: Du machst Benchmark Messung bei einem System das du gerade Verwendest?
Wenn du den Rechner im moment der Messung nicht Benützen würdest, würdest du nicht bemerken das die Verbindung abbricht ... _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
EverNoob

Anmeldungsdatum: 23.10.2005 Beiträge: 15
|
Verfasst am: 27.11.2005, 12:32 Titel: |
|
|
Michael Frey hat Folgendes geschrieben: | @Devilkevin
EverNoob hat Folgendes geschrieben: | P.s. Ich benutze die FBIde 0.4.3 und die FBC Version 0.14 |
Das ist absolut in ordnung, weil die Testing Version von Freebasic hat keine relaventen änderungen in dem Gebiet .
Nun zum Eigentlichen Problem:
Ich kenne das Problem in einer Variante:
Als ich eines meiner Programme unter Linux kompletiert habe, ruckelte das Programm wie blöd, die Lösung war in die Hautpschleife eine Sleep 1 einzubauen, dann läuft Programm rund.
Unter Windows ist der Effekt ähnlich, die Prozessorlast sank von 100% auf 0%, ich vermute das es auch bei dir gehen könnte.
Probiermal diese zwei Programme aus:
Code: | Do
Print "Test"
Loop |
Code: | Do
Print "Test"
sleep 1
Loop |
beim zweiten Programm sollte die Verbindung nicht mehr abbrechen.
Kurze Erklärung noch:
sleep 1 bewirkt eine Pause von 1ms also 0.001 Sekunden, in dieser Zeit kann das Betriebssystem sozusagen "verschnaufen" und anderen Programmen Rechenzeit geben.
Edit:
SystemBenchmark.bas hat Folgendes geschrieben: | Code: | # __FB_WIN32__
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''Marcel Scheele Kleines Benchmark und CPU Auslastungsgenerator Proggi ''
''Erzeugt auf A64 Prozessoren 100% Prozessorlast ''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' |
|
Also darum ...
Dann musst du wohl beim Benchmark Programm damit leben ... |
Danke für den Tip... Das Problem mit der teilweisen hundertprozentigen Prozessorlast bei allen Programmen im Idle hatte ich anfangs auch. Nachdem mich hier ein Forenmitglied in einem Thread auf die Idee mit dem sleep 1 gebracht war
es weg...
aus meinem Code
Code: | if start=0 then sleep 1 ''Wenn keine Aktion dann schlafe kurz |
Hmmm aber das könnte tatsächlich sein das während des Benchloops die hohe Prozessorlast die Verbindung zusammen brechen läßt.... Aber dann hättest du wohl recht und ich müßte damit leben....Komisch nur das es bei Luzifer nicht die gleichen Auswirkungen hatte....  |
|
Nach oben |
|
 |
EverNoob

Anmeldungsdatum: 23.10.2005 Beiträge: 15
|
Verfasst am: 27.11.2005, 12:40 Titel: |
|
|
Nochmal ich
Bei dem anderen Programm wo es genauso häufig auftaucht... Einem 2D Spiel (Raumschiffshooter) ist wohl eine ähnlich hohe Prozessorlast in manchen Programmteilen zu erwarten... Und damit würde sich das Problem wohl auch dort erklären lassen.....  |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 27.11.2005, 16:28 Titel: |
|
|
Hallo.
Mit Qbasic und Visual Basic kann man ja irgendwie ein DoEvent aufrufe, was nicht solange dauert wie sleep 1. Geht das auch irgendwie bei fb?? Denn sleep 1 ist mir in manchen sachen zu lange.
MIchael |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 27.11.2005, 16:37 Titel: |
|
|
Hallo!
DoEvent gibt es bei QB nicht direkt - hier im Forum wurde das mal "nachgebaut". Ich such's mal raus...
/Edit:
So, hier ist es: ich weiß aber nicht ob's auch in FB funktioniert. Versuch's mal, ich kann's gerade nicht testen. Hat dreael 'mal vorgestellt.
Zitat: |
Code: |
' $include: 'qb.bi'
DIM dosIntEin AS RegType, dosIntAus AS RegType
dosIntEin.ax = &H1680
CALL INTERRUPT(&H2F, dosIntEin, dosIntAus)
|
|
/Edit2: Ich hoffe, dass ich hier nichts falsches schreibe...
Greetings,
Mao _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 27.11.2005, 17:14 Titel: |
|
|
Es kann so nicht funktionieren!
z.B. 'qb.bi' gibt's bei Freebasic nicht ...
des weiteren hat Freebasic den Befehl "CALL INTERRUPT" nicht ...
Alle Befehle für Event Handling die in der Datei keywords.txt sind, stehen unter "* Unsupported (won't be implemented unless someone else does that...) *".
Vielleicht gibt es Workarounds für solche Probleme, leider kenne ich nur sleep 1 ... _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 27.11.2005, 17:19 Titel: |
|
|
Das meinte ich ja auch. Bei freebasic geht das aber nicht. Habe mal eins gesehen, was mit der Winapi nachgebaut wurde, allerdings wird da auch sleep 1 gebraucht.
Michael |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 27.11.2005, 17:31 Titel: |
|
|
Hallo,
du kannst SLEEP 1 auch mit der WinAPI nachbilden, sodass du um den SLEEP Befehl herumkommst. Außerdem kannst du in deine zeitkritischen Schleifen einen Zähler einbauen, der nur bei jedem 10. Durchlauf oder so einen SLEEP Befehl ausführt. In Schleifen bei QB-Programmen muss unbedingt der Interrupt rein, wenn das Programm mal unter Windows 2000/XP laufen soll, ohne den Prozessor zu grillen... Ein ausführlicheres Beispiel dazu liefert die Forensuche nach DoNothing.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 27.11.2005, 20:03 Titel: |
|
|
Hallo!
Das es die qb.bi bei freeBASIC nicht gibt war mir klar, hab's der Vollständigkeit halber aber drinnen gelassen. Ob Interrupts unter FB angesprochen werden können - ebend dabei war ich mir nicht sicher. Kann ich eigentlich nicht direkt verstehen, da es sicher praktisch wäre.
Ich schrieb ja Zitat: | Ich hoffe ich hab hier nichts falsches geschrieben... |
_________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
|