Moin!
nach vieler Jahre programmiererei mit JavaScript & PHP, habe ich entschlossen, mit einer anderen Programmiersprache zu befassen (bloss kein VB oder .NET) und bin auf "PureBasic" gestoßen und habe es gekauft.
"PureBasic" hört sich stark nach "Basic" an, ist es aber überhaupt nicht. In der Syntax gibt es nur ein paar Basic-Anweisungen wie "Goto" oder "Do-Loop", der rest erinnert mich eher an PHP und C und hat alle vorteile wie eine Hochsprache.
Zudem ist es ohne Probleme möglich, die in PureBasic geschriebene Programme auf OS wie Mac/Amiga/ oder Unix laufen zu lassen, es werden auch keine DLL´s (man kann aber auf alle System-DLL´s wie auch auf DirectX oder OpenGL zugreifen wenn man es benötigt) oder irgendwelche Runtimes benötigt, was sehr genial ist.
Alles in allem eine verdammt geile Sprache mit einem genialen Compiler, doch einen Nachteil hat die ganze geschicht doch.
Egal was für ein Tool oder Programm schreibe, ich habe bei ausführung des Programmes fast immer, auch auf meinem DualCore@2Ghz, 80% auslastung. Egal was mein Programm macht, ob es nur Simpel die Uhrzeit anzeigt oder irgendwelche berechnungen durchführt.
Es liegt an der art des Codes (nur ein ausschnitt), hier mal ein Beispiel eines Typischen Programmes:
--------------------------------------------------------
InitKeyboard()
InitMouse()
InitSprite()
;h=300
;b=400
xScann=0
yScann=0
Dim xScannArray(1000)
Dim yScannArray(1000)
Dim rScann(400*300)
Dim gScann(400*300)
Dim bScann(400*300)
OpenScreen(1024,768,16,"")
LoadSprite(0,"bild.bmp")
Repeat
^-------------------------------------Anfang
ExamineKeyboard()
ExamineMouse()
DisplaySprite(0,0,0)
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
FrontColor(RGB(255,255,0))
For a= 0 To 400
DrawText(0,350,Str(a))
If a>=400
a=0
EndIf
Next
StopDrawing()
FlipBuffers()
ClearScreen(0)
Until KeyboardPushed(#PB_Key_Escape)
^----------------------------------------Ende
Der auszuführende Code wird immer und immer ausgeführt, bis die Taste (vordefinierter Tastencode) ESC gedrückt wird.
Daher wohl die extreme Auslastung.
Nun aber meine Frage, ist sowas auch bei in C geschriebenen Programmen? Ist sowas völlig normal als nicht "Ereigniss-gesteuerte-Programmiersprache" oder gäbe es auch andere möglichkeiten ein Programm auf dieser art, aber ohne dieser hohen auslastung, zu schreiben?
Es kann ja eigentlich nicht sein, dass ein kleines Tool (egal für welchen zweck) einen ganzen Rechner beansprucht.
Ich kann natürlich auch "Function"´s ausserhalb der Schleife schreiben die hin und wieder aufgerufen werden, die Auslastung bleibt die gleiche da eigentlich immer eine Schleife das Programm am "Leben" hält.....
Hat jemand eine Idee oder Lösung?