Hirdetés
- Yettel topik
- Motorola Edge 70 Fusion – stílusosan főznek
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Samsung Galaxy S25 - végre van kicsi!
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- MIUI / HyperOS topik
- Xiaomi 17 Ultra - jó az optikája
- Április bolondja? Csak egy lebegő mobiltálca
- Xiaomi 17 - még mindig tart
- Fotók, videók mobillal
-
Mobilarena

Új hozzászólás Aktív témák
-
pmonitor
aktív tag
válasz
Fire/SOUL/CD
#16427
üzenetére
Még azt mondják, hogy nem lehet assemblyvel gyorsabb kódot írni! Az olyanoknak ajánlom ezt a példakódot a figyelmébe:
#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <sys/timeb.h>
int int_ToString(int num, char* dest);
char str[12];
long timediff(struct timeb* start, struct timeb* end)
{
long seconds;
seconds = (long)(end->time - start->time);
start->millitm = end->millitm - start->millitm;
if (0 > start->millitm) {
start->millitm += 1000;
seconds--;
}
return seconds;
}
int main(void)
{
struct timeb start, end;
long seconds, seconds_1;
int militm, militm_1;
int i;
ftime(&start);
for (i = 0; i < 100000000; i++)
{
sprintf(str, "%d", -2138);
//printf(str);
}
ftime(&end);
seconds = timediff(&start, &end);
militm = start.millitm;
ftime(&start);
for (i = 0; i < 100000000; i++)
{
int_ToString(-2138, str);
//printf(str);
}
ftime(&end);
seconds_1 = timediff(&start, &end);
militm_1 = start.millitm;
printf("Eltelt ido(sprintf()): %ld.%03d masodperc\n", seconds, militm);
printf("Eltelt ido(assembly): %ld.%03d masodperc\n", seconds_1, militm_1);
}
int int_ToString(int num, char* dest)
{
__asm
{
mov edi, dest
mov eax, num
xor edx, edx
cmp eax, edx
jge nemnegativ
mov ecx, -1
imul ecx
push eax
mov eax, '-'
stosb
pop eax
nemnegativ :
xor ebx, ebx
push_chars :
xor edx, edx
mov ecx, 10
div ecx
add edx, 0x30
push edx
inc ebx
test eax, eax
jnz push_chars
pop_chars :
pop eax
stosb
dec ebx
cmp ebx, 0
jg pop_chars
mov eax, 0x0a
stosb
}
}Nálam itt az sprintf(...) stabilan 6 sec felett, az assembly kód stabilan 2 sec. alatt teljesített. Csupán kevesebb, mint az egyharmada alatt fut le az ASM kód.

Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Luck Dragon: Asszociációs játék. :)
- Yettel topik
- Formula-1
- Óriási ugrás: teszten az ASUS Zenbook A16 és a Snapdragon X2
- Kínai és egyéb olcsó órák topikja
- Kerékpárosok, bringások ide!
- Battlefield 6
- Óvodások homokozója
- Motorola Edge 70 Fusion – stílusosan főznek
- Szünetmentes tápegységek (UPS)
- További aktív témák...
- PS5 Slim Digital (CFI-2016) Karcmentes, 1 kontroller
- ASUS ROG Zephyrus G14 Ryzen 9 / RTX 4070 / 32GB / 1 TB SSD 2K 165Hz PRÉMIUM
- Dobozod ÚJ Lenovo LOQ i7 / RTX 4050 / 144Hz / GARANCIA 2027.03.
- Ultra Rampage Mobile Gamer Csomag: Lenovo Legion Duel 2 + egyedi kiegészítők! 512GB EU verziós!
- Asus TUF RX 6900 XT
- Apple iPhone 17 Pro Max 256GB Bontatlan Független Összes Szín / 27% áfás ár
- Dell Precision 7550,15.6",FHD,i7-10850H,16GB DDR4,512GB SSD,Quadro T2000 4GB VGA,WIN11, 2 KAMERA
- Keresünk iPhone 15/15 Plus/15 Pro/15 Pro Max
- Owl Labs Owl Bar 4K Videokonferencia Rendszer FRS100
- Lenovo X1 Carbon 13,3" - i5 7300U, 8GB RAM, SSD, jó akku - számla, 6 hó gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



