| |
|
|
Konrad Flachs | ¡Hola,
Yo una Programa para una Navigationssystem geschrieben, el mitunter verschiedene Formate konvertieren kann. Dabei me está aufgefallen, el beim einlesen uno csv-Expediente (Cuerdas por semicolon getrennt) el Ladezeit wesentlich länger geworden es. Der Befehl @substr$ benötigt ahora con Profano 8.0 etwa doppelt así largo como con Profano 5.0.
Ist el una Bug de Profano 8.0? ...oder hay una Trick esta?
Gruss Konrad |
|
|
| |
|
|
|
| Nun, XProfan arbeitet en el Gegensatz a Prf5 con Large-Cuerdas, also Cuerdas el no sólo 256Chars, sonder incluso 32kB Chars a Longitud haben puede. Diese Interruptor en el String-Wesen kann desafortunadamente solch Auswirkungen mitsich bringen.
Außerdem debería se wohl Roland a una wenig äußern.
Yo habe el veces kurz getestet, y muß zugeben substr es en XProfan desafortunadamente 5-Tiempo langsamer.
Folgenden Code Yo dafür gepinselt: KompilierenMarcaSeparaciónprint
declare t&,z&,s$,ss$
let t&=&gettickcount
let z&=0
let s$="SO KANNS WEITER| GEHGEN ODER OMIT | DLKFJS LKDFJ SO KANNS NICHT WEITER| GEHGEN ODER OMIT | DLKFJS LKDFJ SO KANNS WEITER| GEHGEN ODER OMIT | DLKFJS LKDFJ SO KANNS WEITER| GEHGEN ODER OMIT | DLKFJS LKDFJ "
while 1
if gt(&gettickcount,t&)
let t&=add(t&,1000)
locate 1,1
print z&
let z&=0
endif
let z&=add(Z&,1)
let ss$=substr$(s$,add(mod(z&,10),1),"|")
wend
end
@Franco, querer wir el substr en asm-basis beschläunigen? XPSE podría de substr una _asm_substr hacer, una Procedure nombre _asm_substr invertir gefüllt con un ASM-Piece de Usted.
@Konrad, si möchtest schnuddle Yo Usted rápidamente ne poco Mini-DLL zusammen, el el CSV-Parsen para Usted hecho. Wäre natürlich en una Vielfaches zügiger. Müsstest me sólo el Profano-Code geben, el a traducir es. Den Rest erledige Yo ya. Un mini-beispiel-cvs genau a diesem Thema wäre para Testen nötig. Tal vez una kleiner Auszug de el Originalen.
Bis denne, IF |
|
|
| |
|
|
|
Frank Abbing | Hi,
also Yo finde no, el el Función sooo langsam arbeitet, el uno ellos inmediatamente sustituir müßte. Konrad, qué para Cuerdas verarbeitest du porque ? Ein Beipspiel ? |
|
|
| |
|
|
|
Konrad Flachs | ¡Hola If y Franco,
danke para la respuesta rápida.
Yo habe festgestellt, el no sólo substr$ pero auch mid$ langsamer geworden es.
Zum Vergleich el einlesen de 20000 csv-Zeilen:
Profano 5.0: ca.27sek. Profano 8.0: ca.82sek. Profano 8.0 sin if y mid$ : 47sek.
Im Programa Teile Yo jede Línea con z.B. Let rtecomment$ = @substr$(lineinp$,12,;) . Dann voluntad el Teile gefiltert con z.B. Let rtecomment$ = @mid$(rtecomment$,1,12) .... oder uno if-Abfrage.
El Vergrösserung el maximalen Stinglänge ( de Vers.5.0 a 8.0) scheint el Verarbeitungszeit de algunos Kommandos a verlängern.
Ideal wäre natürlich una Einschränkbarkeit el Stringlänge y una dadurch resultierenden Zeitgewinn.
Gruss Konrad |
|
|
| |
|
|
|
| Como ya he dicho, oder nen mini-Dll, müsstest sólo sagen lo que el hacer se. Z.b. me dein Profano-Source geben el langsam se ejecuta. Frei geschätzt sería el DLL no 27, sonder 3 Sekunden para el Selbe brauchen.
Bis denne, IF |
|
|
| |
|
|
|
Frank Abbing | Hi,
el Listview.dll z.B. benutzt CSV-Archivos y bietet algunos Características dafür a. Yo sería CSV-Archivos De todos modos con Bereichen bearbeiten, no con el langsamen Cuerdas Wenn du algo Ensamblador aprender möchtest, kannst du dir con el XPIA selber Características escribir. Solche Maschinenfunktionen würden no 27 oder 3 Sekunden benötigen, pero sólo wenige Millisekunden. |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | ¡Hola Personas!
Nur el Vollständigkeit halber: CSV-Archivos puede ser auch bastante bien por ODBC/SQL a Leibe rücken. Obs más rápido es como el manuelle Método oder incluso una ASM-Rutina, glaube Yo allerdings no. Dafür ha uno Sortier- u. Suchmöglichkeiten y u.U. direkten Zugriff en einzelne Zeilen/Spalten (je después de Dateiaufbau).
SeeYou Pascal |
|
|
| |
|
|
|
Jens | ¡Hola Franco,
selbstverständlich hast Usted Usted con el Geschwindigkeitsangaben no vertan, jedenfalls gehe Yo su de. Überrascht bin Yo allerdings total.
Gibt lo (selbstverständlich problemabhängige) Faktoren, como rápidamente z.B. Profano compiliert en el Vergleich a Profano en c++ traducido, a c++ pur o. a Ensamblador-Code es?
Viele Grüße
Jens |
|
|
| |
|
|
|
| Nun, en manchen Angelegenheiten Tuve una Faktor de *65000 ermittelt, en otro z.B. sólo *10000. Damit gemeint es el Diferencia uno (reinen) CPPs (no prf2cpp!) en el Ggs. a uno PrfExe. Das son natürlich alles ca-Angaben. Im Grunde son el Compilate de hochsprachen (como z.B. cpp) no langsamer, como ASM-Code, como sí el Compiler (bajo Berüchsichtigung vieler otro Faktoren ajustable con Compilerschaltern) auch en ASM Compilieren. Es aber tatsächlich así, daß si uno direkt en ASM komponiert uno algunos unwichtige-Operationen weglassen kann. Auf bien Alemán, si una CPP-Prog en uno Sekunde 1mio veces addiert, sería una reines asm el tal vez 10-30% más rápido schaffen. Pero esto es auch sólo entonces así, si uno como CPPer no en el richtigen Compilierschalter en el Source achtet. Como restos lo el Programmierer incluso überlassen, costo y nutzen abzuschätzen, wobei C++ natürlich con uno leckeren Syntax y wirklich einfachen Befehlsmöglichkeiten lockt. Wenn uno aber z.B. sólo una Register 1Mio male addieren muß, entonces wohl natürlich ASM más rápido. So podría uno behaupten, el desto einfacher el Tarea, desto mehr lohnt ASM.
Bis denne, IF |
|
|
| |
|
|