Seite 1 von 2

Folgender Code lässt sich weder debuggen noch funktioniert

Verfasst: 05.11.2013 19:06
von N_Gnom
Also ich hab folgenden Code bekommen da C++ und PB in Geschwindigkeit verglichen werden sollten.
Er funktioniert in der Form mit PB5.20 nicht bzw. wird als Trojaner erkannt von Kaspersky.
Debuggen geht auch nicht....

Mir scheint der Code soweit richtig:

Code: Alles auswählen

Dim stA.s(1000)
Dim stB.i(1000)
Dim stC.f(1000)
Define.s ad
Define.i bd
Define.f cd
Define.s sout1
Define.l tm
OpenConsole()
  ConsoleTitle ("PureBasic - Console Example:")  ; Now we can give the opened console a Titlename ;)                                                  
  EnableGraphicalConsole(1)
    tm = ElapsedMilliseconds()

    For  i = 0 To 9999
        For  j = 0 To 999
            stA(j) = "ABC"
            stB(j) = j
            stC(j) = 12.66
            ad = stA(j)
            bd = stB(j)
            cd = stC(j)
        Next

    Next    
    tm = ElapsedMilliseconds() - tm
    sout1 = Str(tm)

ConsoleLocate (1,1)

PrintN("Struct Array init and read: " +
       sout1)
ad = Input()
CloseConsole()

Re: Folgender Code lässt sich weder debuggen noch funktionie

Verfasst: 05.11.2013 19:22
von Kiffi
tscha, da hilft nur eins: Kaspersky ausschalten ;-)

Grüße ... Kiffi

Re: Folgender Code lässt sich weder debuggen noch funktionie

Verfasst: 05.11.2013 19:26
von N_Gnom
haha wenns so einfach wäre.
Ich kanns zawr ausschalten, schaltet sich aber dann automatisch wieder ein bei einer derartigen "Bedrohung".

edit: habs hinbekommen....pb is brauch dafür ja mehr als doppelt soviel zeit wie pures c++.

Re: Folgender Code lässt sich weder debuggen noch funktionie

Verfasst: 05.11.2013 19:30
von RSBasic
Füge bei Kaspersky Ausnahmen hinzu.

Re: Folgender Code lässt sich weder debuggen noch funktionie

Verfasst: 05.11.2013 19:31
von Kiffi
N_Gnom hat geschrieben:pb is brauch dafür ja mehr als doppelt soviel zeit wie pures c++.
Debugger ausgeschaltet? Der braucht viel 'Strom'.

Grüße ... Kiffi

Re: Folgender Code lässt sich weder debuggen noch funktionie

Verfasst: 05.11.2013 19:32
von Lothar Schirm
Mein Kaspersky motzt nicht (Kaspersky Anti-Virus 2013). Was passiert denn bei dir? Bekommst du einen POLINK Error?

Re: Folgender Code lässt sich weder debuggen noch funktionie

Verfasst: 05.11.2013 19:37
von N_Gnom
er löscht es weil denkt ist ein trojaner.
habs jetzt nicht ausgeschaltet nur schutz deaktiviert.
da ging es...

ja ohne debugger....mit debugger ist es fast viermal so langsam.ohne "nur" mehr als 2mal so langsam.

zeitvergleiche

c++ 1218ms
pb ohne dubugger 2797ms
pb mit debugger 5062

Re: Folgender Code lässt sich weder debuggen noch funktionie

Verfasst: 05.11.2013 19:40
von KeyKon
Naja C++ ist ja was die Hochsprachen angeht vermutlich auch so ziemlich das Maß aller Dinge...
Zeig doch mal den C++ Code, vll hast du ja nicht alles 1:1 umgesetzt *g*

LG KeyKon

Re: Folgender Code lässt sich weder debuggen noch funktionie

Verfasst: 05.11.2013 19:42
von edel
Ja mit debugger brauchst du gar nicht zu testen. Und PB mit einem C++ Kompiler zu vergleichen ist eigentlich auch Unsinn, da fast alle professionellen C++ Kompiller sehr gut optimieren koennen, was PB kaum bis gar nicht kann. Was aber nicht heisst das PB generell langsam ist. Man muss nur selber optimieren.

Re: Folgender Code lässt sich weder debuggen noch funktionie

Verfasst: 05.11.2013 20:35
von STARGÅTE
N_Gnom hat geschrieben:c++ 1218mspb ohne dubugger 2797mspb mit debugger 5062
Liegt vermutlich am String-Verwaltungssystem von PB.
Das ist recht flexibel, dafür aber hier und da langsammer, als andere.
Und gerade hier

Code: Alles auswählen

stA(j) = "ABC"
wird halt sehr oft Speicher für eine Zeichenkette reserviert, bzw. alte Speicher wieder freigegeben.
Der Code wird bestimmt schneller, wenn du mit Fix-Strings arbeitest:

Code: Alles auswählen

Dim stA.s{4}(1000) ; Strings mit nicht mehr als 4 Zeichen.
Aber in PureBasic geht es halt um Pure.