Español
Ensamblador Foro

Tempovergleich: Profano / Profano2Cpp / Ensamblador

 

Frank
Abbing
Hi,

Hab unos pocos Tests gemacht con Schleifen.
Un vacío Bucle, el 100 Millionen veces aufgerufen se, dauert encima 120 Sekunden (P4/1800) con Profano.
Das todo en Ensamblador dauert 78 Millisekunden, also ca. 1600 veces más rápido.
Interessant todavía el Messung, si la Code con Sebastians Profano2Cpp ausgeführt se. C++ benötigt 250 Millisekunden para el Bucle, es also sólo  500 veces más rápido como Profano.
Ensamblador es hier also encima 3 veces más rápido como C++, qué einiges encima native Compilate en uno Hochsprache aussagt...

Achtung !
Bitte necesariamente speichern bajo Schleifen.prf, porque sonst el generierte Dll-Función No se ha encontrado se.
Nach Generierung el fertigen Exe es el Name des Programms natürlich egal y kann cualquier umgenannt voluntad.
KompilierenMarcaSeparación
 
11.07.2004  
 



Nene Franco, como muß Yo dich desafortunadamente una wenig korrigieren.

Das Prf2CPP nutzt OBJs de XProfan, una pure-CPP schleife, con correcto-gesetzem Compilerschalter es en el Geschwindigkeitsvergleich sólo ligeramente langsamer como pure-ASM. Das Problema es höchstens, si la CPP-Compiler no correcto erkennt, el se trata de un simple Addition es, y seinen ASM todavía großartige Range-Checks einbaut etc.

Also una Vergleich de ASM y CPP, bajo Benutzung de Prf2CPP es de meiner sicht ligeramente unzulässig.

Bis denne, IF
 
11.07.2004  
 




Frank
Abbing
Hi,

sólo Es el Bucle sí komplett leer...
Como Profano2Cpp genau arbeitet blanco Yo no.
KompilierenMarcaSeparación
Der Code wurde generiert y yo denke, el ha el Dev-C++ auch nativ traducido.
Tal vez sagt Sebastian todavía qué dazu, si él hier veces vorbeikommt
 
12.07.2004  
 



Hmmm algo stimmt no Franco, kannst Usted dir veces el aktuellen XPSE runterziehen y schauen si a me liegt?

Yo c:p00x, y xpia liegt en c:p00xxpia

Alles arbeitet wohl anscheinend korrekt, auch xpia final se erfolgeich, y el prog se auch comenzó, aber kommt entonces con uno meldung el el DLL No se ha encontrado wurde. Yo incluso kann el dll auch no ausfindig hacer.

Yo habe el o.g. Source intenta a starten.

Das Ergebnis es:
KompilierenMarcaSeparación
Erstellt mit XProfan Inline Assembler / XPIA, (C) Frank Abbing
Assemblierte Datei: C:p00xXPIAAssemblertest.enh
Declare xpia#,xpia$,xpia&
Dim xpia#,3076
Clear xpia#
Long xpia#,0=9460301,3,4,65535,184,0,64,0,0,0,0,0,0,0,0,176,247078670,-855002112,1275181089,1750344141,1881174889,1919381362,1663069537,1869508193,1700929652,1853190688,544106784,542330692,1701080941,168627502,36,0,-642185571
Long xpia#,132=-1965594663,-1965594663,-1965594663,-1966782683,-1965594664,-1966835625,-1965594660,1751345490,-1965594663,0,0,17744,262476,1088455093,0,0,554565856,201654539,512,1536,0,4096,4096,8192,268435456,4096,512,4,0,4
Long xpia#,252=0,20480,1024,0,2,1048576,4096,1048576,4096,0,16,8224,88,8192,20,0,0,0,0,0,0,16384,40,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,0,0,0,0,0,0,2019914798,116,167,4096,512,1024,0,0,0,-536870880,1633972782,24948,120,8192,512,1536
Long xpia#,488=0,0,0,1073741888,1952539694,97,60,12288,512,2048,0,0,0,-1073741760,1818587694,25455,62,16384,512,2560,0,0,0,1107296320,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Long xpia#,768=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1192457387,1,836297,-1559738997,268447744,-1559476853,268447748,-1559214709,268447752
Long xpia#,1060=-1558952565,268447756,-1558690421,268447760,-1558428277,268447764,-1558166133,268447768,-1557903989,268447772,-1557641845,268447776,-1557379701,268447780,-1557117557,268447784,-1556855413,268447788,-1556593269
Long xpia#,1136=268447792,-1556331125,268447796,-1556068981,268447800,-326412861,-32792,47359,1569390592,1111537928,65732623,189383427,1576629705,1218,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Long xpia#,1340=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1919251317,1680749107,27756,0,1088455093,0,8274,1,1,1,8264,8268,8272,4229,8297,1096744960,1835365235
Long xpia#,1624=1919249506,1953719668,1752065375,1819042862,1314211328,1330205771,1095652174,3229005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Long xpia#,1904=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Long xpia#,2324=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4096,40,806891536,807940128,808988720,810037312,811085904,812134496,813183088,12416,0,0,0,0
Long xpia#,2616=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Long xpia#,3036=0,0,0,0,0,0,0,0,0
xpia$=$SysPath+\_Assemblertest_enh.dll
FileMode 1
Assign #1,xpia$
OpenRW #1
BlockWrite #1,xpia#,0,3072
CloseRW #1
Dispose xpia#
~~~~~~~~~~
DECLARE X&,Y&,Z&
CLS
X&=37
Z&=External(_Assemblertest_enh.dll,FUNKTIONSNAME1,X&)
PRINT Addiere eine Millionen mal 37 = +STR$(Z&)
WAITINPUT
FIN

Das Programa kommt aber con el Meldung DLL No se ha encontrado: _schleifen_enh

Bis denne, IF
 
12.07.2004  
 




Frank
Abbing
Hi IF,

du arbeitest wohl con uno älteren XPIA Versión, porque el Dll aún en Systempfad generiert se. Ab letzter Versión Yo aber el Temppfad gewählt, porque lo sonst a Problemen en No-Admin-Usern kam. Actualización doch veces.

Und hast Si es usted el auch beachtet ?


Achtung !
Bitte necesariamente speichern bajo Schleifen.prf, porque sonst el generierte Dll-Función No se ha encontrado se.
Nach Generierung el fertigen Exe es el Name des Programms natürlich egal y kann cualquier umgenannt voluntad.


Hast dus hinbekommen ?

P.S.: Läuft auch con el neuen XPSE Versión de heute wunderbar.
 
12.07.2004  
 




Sebastian
König
Hola si,

IF (!ReGeXiT)
Nene Franco, como muß Yo dich desafortunadamente una wenig korrigieren.


Und Yo ahora Usted ...

IF (!ReGeXiT)

Das Prf2CPP nutzt OBJs de XProfan, una pure-CPP schleife, con correcto-gesetzem Compilerschalter es en el Geschwindigkeitsvergleich sólo ligeramente langsamer como pure-ASM. Das Problema es höchstens, si la CPP-Compiler no correcto erkennt, el se trata de un simple Addition es, y seinen ASM todavía großartige Range-Checks einbaut etc.


Profano2Cpp benutzt no OBJs de XProfan! El (X)Profano-Codes voluntad correcto después de C++ traducido y luego, genau como Franco geschrieben ha, nativ kompiliert. El Características, el no direkt en el Windows-API disponible son, voluntad de el Profano2Cpp-Bibliotheken a erstellten EXE-Expediente gelinkt.

IF (!ReGeXiT)

Also una Vergleich de ASM y CPP, bajo Benutzung de Prf2CPP es de meiner sicht ligeramente unzulässig.


Jain . In una Punkt hast Usted bastante: Wenn uno el de Franco gepostete Bucle direkt en C++ implementieren sería, fiele el Diferencia a Ensamblador sicher deutlich geringer de.

Das ha verschiedene Gründe: Si usted Usted el de Franco geposteten C++-Code-Schnipsel ansiehst, stellst Usted fest, dass el for-Konstruktion algo kompliziert es y theoretisch einfacher gestaltet voluntad podría. Profano2Cpp muss aber el komplizierte Variante benutzen en a allen whileloop-Varianten kompatibel a ser y así alles genau como en Profano incluso funktioniert.

Außerdem verwendet Profano2Cpp para el traducir Programas una Multithread-Konzept, sodass auch dadurch todavía algo mehr Tiempo para el Bucle benötigt se.

Yo denke aber, dass lo Franco en seinem Vergleich en el Bezug a Profano va (Franco, Por favor, korrigiere mich, si Yo mich irre ). Und esta finde Yo ok, el Geschwindigkeitssteigerungen, el uno con Inline-ASM y Profano2Cpp erreichen kann, a vergleichen. Se puede doch con el XPSE auch beides kombinieren, oder?

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
12.07.2004  
 



Hmmm Sebastian, eigendlich genau mi Rede.
Ein optimierterer Cpp-Code es kaum merklich langsamer como una ASM-Rutina, besonders en diesem Ejemplo. Das Yo quería auch sólo aussagen.

Sebastian König
Hola si,

... Se puede doch con el XPSE auch beides kombinieren, oder?

MfG

Sebastian


Jepp, Yo bin grad al cpp-compilerschalter.


Franco, el Fehler lag en me, Yo nannte el Expediente no Schleifen.prf. Jetzt funktioniert alles Primö!

Bis denne, IF
 
12.07.2004  
 




Frank
Abbing
Hi.

@Sebastian: Usted irrst dich no, Yo meinte lo así.
Ein Hochsprachencompiler producido sólo Code, el variabel gestaltet es, en todos Eventualitäten einzukalkulieren.
El Assemblerroutine degegen es muy undividuel.

@IF: Dachte Yo doch .
Wer lesen kann es klar en el Vorteil
 
12.07.2004  
 



Sebastian König
El (X)Profano-Codes voluntad correcto después de C++ traducido y luego, genau como Franco geschrieben ha, nativ kompiliert.

Posesiones nie qué Anderes behauptet.

Frank Abbing
Wer lesen kann es klar en el Vorteil

Puedo lo ebend no. Also algo bessere Zuarbeit büdde.
Am Ende restos doch aber übrig, Yo para Anfang ya meinte: Ein optimierter CPP-Code es en el Geschwindigkeit kaum a unterscheiden vom ASM. Con el el OBJs Tuve doch sólo aufgeführt, en a symbolisieren el hay sólo deutlich más que sólo una dec ecx durchgeführt se, qué el Speedunterschied stark ausmacht. Yo meinte auch el el Vergleich zwischen prf2cpp-Code y asm-code algo unfair es, porque sólo el prf2cpp, genau como du en efecto incluso sagst, no el optimiertesten code auswirft. Ist en efecto logisch, muß sí en el verschiedensten Profanen Bedingungen passen.

Bis denne, IF
 
12.07.2004  
 




Frank
Abbing
Hi.


Yo meinte auch el el Vergleich zwischen prf2cpp-Code y asm-code algo unfair es, porque sólo el prf2cpp, genau como
du en efecto incluso sagst, no el optimiertesten code auswirft. Ist en efecto logisch, muß sí en el verschiedensten Profanen
Bedingungen passen.


...dafür muß Profano el Assemblerfunktionen aber auch como Dll-Características starten. Womöglich incluso todavía con Externo, qué alleine ya 16 ms para seine Ausführung benötigt .
Also gleicht se el de.
 
12.07.2004  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

2.961 Views

Untitledvor 0 min.
Sven Bader22.10.2021
Rschnett15.08.2017
p.specht03.05.2017
dieter02.07.2016
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie