Скорост при различните типове данни

0 views
Skip to first unread message

TriEdgeAI

unread,
Jan 17, 2012, 4:13:50 PM1/17/12
to ТУЕС Програмно осигуряване 2011
Различни хора са ми казвали и съм чел на няколко места в интернет, че
операции като събиране и изваждане, които не са 4-байта (за 32-битови
процесори) или 8-байта (за 64-битови) са по-бавни от тези, които са.
Т.е. ако ползвам short int ще си спестя 2 байта, обаче ще изчислявам
по-бавно примерно. Обаче като направих тест дали е така и се оказа, че
при мене нямаше абсолютно никаква разлика в скоростта, независимо дали
ползвам char, short или int. Въпроса ми е, има ли реално такова
разминаване в скоростите при други машини или това вече не е актуално
(или никога не е имало разлика)?

Lubomir Tzvetkov

unread,
Jan 17, 2012, 4:49:14 PM1/17/12
to cprogrammi...@googlegroups.com
Здравей,
Ще ти отговоря малко отгоре отгоре на този въпрос. Да има разминаване в бързината и съответно в заеманата памет. В днешно време персоналните компютри са толкова бързи, че повечето хора не се интересува в това дали ще заемат 1 байт или 2 байта информация. Внимание на такова нещо все пак може да се обърне когато се пише embeded софтуер - съответно за микроконтролери или процесори, защото тази операция може да бъде извършвана от 1 милион пъти и ако има забавяне от няколко пико секунди( за една операция) - то при толкова голямо повторение със сигурност ще има значение. Примерно за вдигане на флагове не се използва булев тип или цяло число, а може 1 байт = 8 бит и всеки бит да бъде даден флаг, значещ някаква булева стойност(1,0) - има много алгоритми базирани на този принцип.

Поздрави, Любо.

TriEdgeAI

unread,
Jan 17, 2012, 4:52:33 PM1/17/12
to ТУЕС Програмно осигуряване 2011
Да приемам ли, че когато гоня максимална скорост е най-добре да
използвам само int, дори за булеви стойности или букви? (Приемайки, че
не съм ограничен от мястото)

Lubomir Tzvetkov

unread,
Jan 17, 2012, 5:03:02 PM1/17/12
to cprogrammi...@googlegroups.com
По този въпрос ще се допитам до един колега, който се е занимавал с такива неща.
Гледай в секция Common Misconceptions - мисля че там има отговор на твоя въпрос. Ще я погледна и аз.

Поздрави, Любо.

Reply all
Reply to author
Forward
0 new messages