- Argos: Szeretem az ecetfát
- Gurulunk, WAZE?!
- Brogyi: CTEK akkumulátor töltő és másolatai
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- bitpork: MOD Júni 13 Augusztus 2- szombat jelen állás szerint.
- gban: Ingyen kellene, de tegnapra
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Parci: Milyen mosógépet vegyek?
- D1Rect: Nagy "hülyétkapokazapróktól" topik
-
LOGOUT
Ú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.
-
válasz
Fire/SOUL/CD #16427 üzenetére
> hogy az hány darab utasításból ál
hat nem igazan ettol fugg a sebesseg
-
K1nG HuNp
őstag
válasz
Fire/SOUL/CD #16427 üzenetére
semmi koze a nyelv szintjének a gyorsasághoz, lásd rust, go. manapsag a legperformansabb nyelvek koze tartozik mindketto, megis boven high level.
-
kovisoft
őstag
válasz
Fire/SOUL/CD #16427 üzenetére
Ez egy ideje már nagyon nem így van. Gyakorlatilag szinte esélytelen gyorsabb kódot írni assemblyben, mint amilyet mondjuk egy normálisan optimalizáló C fordító fordít. Ehhez komoly mértékben kellene tudni ismerni és alkalmazni a modern CPU architektúrák finomságait (pl. milyen utasítás mivel tud párhuzamosan lefutni, milyen utasítás milyen körülmények között hány órajelet vesz igénybe, stb). Ezeket ugyanakkor beépítik a fordítóprogramokba.
-
Micsurin
nagyúr
válasz
Fire/SOUL/CD #16427 üzenetére
Azt a tanár tette oda és az az alap.asm amit elvileg nem kell bizerbáljunk csak használjunk... szóval mi nem piszkáljunk.
Megkaptuk a történeti fejtágítást csak valahogy nem fogom jobban megszeretni ettől ezt a szintű magamra utaltságot egy két magas szintű nyelv után.
C segítene kicsit a logika elsajátításában vagy felesleges abba is belekezdeni csak emiatt?
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
- új, bontatlan, iPhone 16E gyárilag kártya-független, apple világgaranciával
- Üzletből, garanciával, Macbook Pro Retina 16" 2019, Gray i9 64GB RAM 1TB SSD Radeon Pro 5500M
- Üzletből, garanciával, Macbook Pro Retina 16" 2019, Gray i9 64GB RAM 2TB SSD Radeon Pro 5600M 8GB
- MacBook Pro 14" M1 MAX - 32GB / 1TB (2021) - 1 év garancia
- MSI RTX 4070 SUPER 12GB GAMING X SLIM WHITE - 20 hónap garancia
- BESZÁMÍTÁS! Samsung Odyssey G5 32 144Hz WQHD 1ms monitor garanciával hibátlan működéssel
- Bomba ár! HP ZBook Studio G5 - i9-9980H I 32GB I 1TSSD I Nvidia I 15,6" FHD I Cam I W11 I Gar
- Honor Pad X8 64GB, Wi-Fi, 1 Év Garanciával
- Bomba ár! Dell Latitude 5400 - i5-8GEN I 16GB I 512SSD I 14" HD I HDMI I Cam I W11 I Gari!
- Külföldi csomagszállítás Packeta csomagpontokon keresztül!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest