Ca parte a multor procesoare moderne, există o unitate cu puncte în virgulă mobilă (FPU), o parte a procesorului pentru a efectua o gamă largă de operații matematice pe numere reale. Dacă specificați compilatorul în stadiul de compilare că programul în care programul va avea un FPU, programul îl poate folosi direct, ceea ce are un efect pozitiv asupra performanței. Aceasta se numește ansamblu sub Hard float. Există, de asemenea, procesoare care nu au un astfel de bloc, prin urmare, programele compilate folosind instrucțiunile FPU nu vor funcționa pe ele. Pentru ca programul să funcționeze pe orice procesor, indiferent de prezența FPU în ele, este necesar să împiedicăm compilatorul să utilizeze instrucțiunile FPU pentru a construi programul, chiar dacă există. Acest lucru reduce în mod serios viteza programului, dar face posibilă compilarea programului pentru o gamă mai largă de echipamente. Un astfel de ansamblu se numește soft: emulația completă a software-ului FPU (punctul plin de software plin). Cu toate acestea, dacă încercați să executați programul compilat sub soft pe procesor cu FPU, sistemul asamblat cu punctul moale va utiliza în continuare acest modul, totuși costurile pentru utilizarea indirectă a blocului sunt foarte semnificative. Pentru aplicația medie, acestea sunt de la 5 la 40%, iar în cazul în care aplicația utilizează în mod activ calcule în virgulă mobilă, atunci până la 200%!
Să rezumăm.
Cum să distingi
readelf -a / usr / bin / ar