Jag läste en gammal tråd angående Advanced optimizations i VB ([Svar till Simon: Compiler val ?]) och det är en sak jag undrar. Sven skriver att man kan bocka i vissa saker om man har försäkrat sig om att man tex inte får overflow eller gör en division med 0. Det var i och för sig inte så svårt att göra ett litet vetenskapligt test själv och nu förstår jag i alla fall hur just den saken blir. Jag bockar av alla som standard. Läs mera på Har man matteintensiva program finns det mycket optimering att hitta här <b>För oss som inte orkar testa, vad händer?</b> <b>Jag bockar av alla som standard.</b> Jag har en "bock" i alla rutorna.Advanced optimizations
Vad händer om man tex tar bort kontrollen för overflow och sen får overflow? I vanligt läge så får man ett felmeddelande och programmet stängs av, mycket mer fel än så kan det väl inte bli?
ThomasSv: Advanced optimizations
Brukar ni ta bort några kontroller och vilka i så fall?
ThomasSv: Advanced optimizations
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconnativecodecompilerswitches.aspSv:Advanced optimizations
Array Bounds 0.013 0.007
Integer Overflow 0.018 0.002 whoops !
Floating Point Error 0.098 0.046
Fö skall du aldrig använda Integer i VB6 du skall använda Long
Sen strular det till sig om du skall porta till VB.net
Där heter det Integer och är samma som VB:s Long.
Dvs man skyfflar 32 bitar åt gången.
Själv är jag Optimerings-fetischt, känner innre tillfredställelse om jag vet
att jag gjort allt jag kan för att optimera
Se mina uppskick
Programarkivet:Cirkel matematik Radar
Programarkivet:Ny Optimerad Mandelbrot
Programarkivet:Polygon beräkna Area
Hur mycket det än bär emot så måste jag ekänna att Andreas Hillqvist hade rätt
när han skrev att VbTab är snabbare än Chr$(9)Sv: Advanced optimizations
Om man tar den här koden:
<code>
Dim VarInt As Integer
VarInt = 70000
Msgbox VarInt
</code>
och sen kör den med kontroll, då får man overflow-felmeddelande.
Kör man den utan kontroll så fungerar koden utmärkt och 3e raden ger ett meddelande med 4465 istället för 70000. Det är alltså 70000 minus integer-max, 65535.
Gör man en division med 0 utan kontroll så får man ett meddelande med "1F,INF" eller nått sånt.
ThomasSv:Advanced optimizations
Menar du att du bockar i allt, dvs du tar bort alla kontroller, eller menar du att du bockar av allt, dvs tar med alla kontroller?
ThomasSv: Advanced optimizations
Det betyder att jag kör maximal optimering.
"Remove" kontroll mm.
Obs någon gång får man vara försiktig med owerflow kontroll
Array kontrollen måste du fixa redan i designläge.Dålig programmering annars.