Często widzę kod, który konwertuje ints na debla na ints na debel i znowu na powrót (czasami z dobrych powodów, czasami nie), i przyszło mi do głowy, że to wydaje się być "ukrytym" kosztem w moim programie. Załóżmy, że metodą konwersji jest obcięcie.Jak droga jest konwersja między int i double?
Tak, jak drogie jest to? Jestem pewien, że różni się w zależności od sprzętu, więc przyjmijmy nowy procesor Intela (Haswell, jeśli chcesz, chociaż weźmie wszystko). Niektóre dane byłbym zainteresowany (choć dobra odpowiedź nie musi mieć wszystkie z nich):
- # wygenerowanych instrukcji
- # cykli stosowanych
- koszt względna w stosunku do podstawowych operacji arytmetycznych
Zakładam również, że sposób, w jaki najbardziej dotkliwie odczuwamy wpływ powolnej konwersji, byłby związany z wykorzystaniem mocy, a nie z prędkością wykonywania, biorąc pod uwagę różnicę w liczbie obliczeń, które możemy wykonać w każdej sekundzie wiele danych może rzeczywiście dotrzeć do Procesor co sekundę.
Nie ma sensu dyskutować bez konkretnego systemu. Na początek, niektóre systemy nie mają nawet FPU. – Lundin
[liczba konwersji i wydajność] (http://stackoverflow.com/q/12920700/995714), [Jak przyspieszyć przeliczanie liczb zmiennoprzecinkowych na liczbę całkowitą?] (Http://stackoverflow.com/q/429632/995714), [Jaki jest najszybszy sposób konwersji floata na int na x86] (http://stackoverflow.com/q/78619/995714), [Czy typecasting zużywa dodatkowe cykle procesora] (http://stackoverflow.com/q/16539412/995714) –