Re: Assembler vs. Perl



On 19 Dez., 22:14, Markus Wichmann <nullp...@xxxxxxx> wrote:
Michael Müller (mmuelle...@xxxxxx) schrieb:

Diedrich Ehlerding schrieb:
Der wesentliche Teil der Laufzeit in deinem Beispiel vergeht in der
Bibliotheksfumktion "printf" und der dazugehörigen Bildschirmsteuerung
(Zeilen nach oben schieben usw. usf.). Diese Bibliotheksfunktion verwenden
letztlich beide Varianten.

Der ganze Kram nochmals ohne printf fände ich spontan interessant.

Grüße, Michael

Dann probieren wir das doch mal aus. Assembler-Version für AMD64:

global _start
default rel

section .rodata
s: db "hello, world!", 10
    .len: equ $-s

section .text
_start:
    mov r12, 10000000

.l:
    mov eax, 1
    mov edi, 1
    mov rsi, s
    mov edx, s.len
    syscall
    dec r12
    jnz .l

    mov eax, 60
    mov edi, 0
    syscall

Ergibt hier: 1,20 Sekunden, wenn nach /dev/null umgeleitet. Jetzt Perl:
$ command time -p -o t2 perl -e 'for (my $i = 10000000; $i > 0; $i--)
    {print "hello, world!\n"}' >/dev/null
$ cat t2
real 1.62
user 1.61
sys 0.00

Noch Fragen?

Tschö,
Markus
--
Nur weil ein Genie nix reißt, muß ja nun nicht gleich jeder Idiot
pausieren... Bully hats ja auch geschafft.
    -- gUnter nanonüm in de.alt.anime


Ja! Wieviele Sekunden braucht dein Assemblerprogramm unter MS-DOS?
(Aber nur, wenn dir dafür deine AMD64 CPU nicht zu schade ist).
.



Relevant Pages