- iPhone topik
- Poco F7
- Ovális kamera és Exynos az S26 Ultra pletykakosarában
- Lassan teljes a Xiaomi 16 tudáslistája
- Képeken a Huawei új Watch GT 6 órái
- Azonnali mobilos kérdések órája
- Honor 20 - jobb későn, mint soha!
- Milyen okostelefont vegyek?
- Okosóra és okoskiegészítő topik
- Megéri lecserélni a Nothing Phone (1) és (2) készülékeket
-
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!
- BestBuy topik
- PlayStation 5
- Milyen autót vegyek?
- Hamarosan automatikusan települ a Microsoft 365 Copilot
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Melyik tápegységet vegyem?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Doky586: Adattár lemez előkészítése távlati Windows telepítéshez
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Milyen egeret válasszak?
- További aktív témák...
- Lenovo ThinkPad P15v Tervező Vágó Laptop -65% 15,6" i7-10850H 16/512 QUADRO P620 4GB
- Szép! Lenovo ThinkPad P53s "Kis Tervező Vágó Laptop" -65% 15,6" i7-8665U 32/512 QUADRO P520 2GB FHD
- Zalman ZF9225ATH AMD CPU hűtő
- MSI NX8600GT-E (MS-V091) PCI-E videokártya
- Asus P5QE Retro alaplap, + Xeon X5450 CPU, + hűtő
- PlayStation Network (PSN) ajándékkártyák, feltöltőkártyák áron alul!
- GYÖNYÖRŰ iPhone 13 mini 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3311
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- AKCIÓ! DELL Precision 7540 i7-9850H Quadro T2000 16GB 512GB 1 év garancia
- HIBÁTLAN iPhone 13 mini 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3445, 97% Akkumulátor
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest