32/64 разряда в чем цмес/смысл?
Aug. 18th, 2010 12:17 pm![[identity profile]](https://www.dreamwidth.org/img/silk/identity/openid.png)
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)
Компьютерщики поясните плз. "попрастому" для лоха, Вот есть винда7я 32 разрядная, а есть 64х.
Суть разницы только в том. что первая видит до 2х гигов оперативы, а
64х более 2х? В этом ВСЯ разница?
Если на компе оперативы 2 гига (два ядра)(с) :-) То 64х нинужна ниразу?
А то не понимаю, зачем вообще ставят 64х винду то??
Может она быстрее в разы, чем 32?
PS
Использование компа такое:
В игры не играю/не ставлю их, фотошопом не пользуюсь,
ночью не храплю юзаю тока браузер и почту и фильмишки гатткие
смотрю на компе. Может поставить 64 разрядную?
Суть разницы только в том. что первая видит до 2х гигов оперативы, а
64х более 2х? В этом ВСЯ разница?
Если на компе оперативы 2 гига (два ядра)(с) :-) То 64х нинужна ниразу?
А то не понимаю, зачем вообще ставят 64х винду то??
Может она быстрее в разы, чем 32?
PS
Использование компа такое:
В игры не играю/не ставлю их, фотошопом не пользуюсь,
смотрю
no subject
Date: 2010-08-18 08:12 pm (UTC)int* ptrCounter;
?
В 32-х разрядных программах указатели занимают 4 байта, в 64-х разрядных - 8 байт.
Соответственно, если мы программу перекомпилируем в 64-х битный режим (и считаем что программа запустилась и работает нормально) - программа будет больше по размеру.
Теперь про размер. Размер кода и данных в 64-х разрядных программах будет больше, чем в 32 разрядных, как минимум за счет больших указателей, которые очень широко применяются в коде.
Соот-но при том же размере кэша 32-х разрядный код будет работать быстрее, так как больше покрывается кэшом.
Да, можно жестко программу заоптимизировать в 64 бита, и она будет быстрее. Но, во первых, это делается только для очень малого класса программ. Они мало распространены, и очень дороги.
Короче редкость ;)
no subject
Date: 2010-08-18 08:23 pm (UTC)да я знаю что такое С/C++ и даже знаю что такое байт (вы не поверите)
да. если вы перекомпилируете программу в 64 бита, то она будет длиннее. Но! в большинстве случаев она или ее процессороемкий цикл все равно влезет в кеш процессора. А ведь вы знаете что важно в данном случае? Попало все в кеш или нет - остальное неважно. А ваш 64 битный указатель, который вы так ругаете - будет сидеть как влитой в 64битном регистре ни тратя ни йоту дополнительных ресурсов.
Да, делается для малого класса программ, самых процессороемких и памятеемких - не спорю.
no subject
Date: 2010-08-18 09:01 pm (UTC)А что такое процессороемкий цикл?
То есть вы утверждаете что весь код и все данные все равно влезут в кэш процессора? Типа как 640 кб хватит всем? ;)
А что вы таки путаете кэш и регистр? ;) Причем тут влитой ? ;) Вы меня удивляете.
no subject
Date: 2010-08-18 09:15 pm (UTC)например обработка последовательности байтов в изображении которое обрабатывается фильтром фотошопа (все упрощаю).
for () {
делаем что-то
}
этот цикл короче всей программы, причем значительно и кешируется быстро. 640к вполне достаточно. я думаю с большинстве случаев хватит гораздо меньше памяти под кеш этого кода.
вот это и есть процессороемкий цикл.
А указатель... что указатель? обычно он указывается на начало области памяти где лежит скажем то самое изображение
ну 64 бита он, ну и что? Регистр в процессоре под него тоже 64 бита.
никаких проблем и дополнительного оверхеда.
no subject
Date: 2010-08-18 09:22 pm (UTC)Или все ж фотографии? Если фотографии, то они, в нынешнее время могут до десятков мегобайт быть. и 640 кб ну никак не хватит.
Вы действительно думаете что указатели только на начало памяти где изображение лежит?
Попробуйте какой-нибудь алгоритм написать один раз на C. Тогда вам откроется истина про указатели.
Ну или в ассемблер залезьте и посмотрите как часто данные передаются by value ;)
no subject
Date: 2010-08-18 09:35 pm (UTC)зачем мне при сложной обработке изображения скажем... передавать данные by value
вы сами подумайте. у меня из сущностей - есть само изображение т.е. указатель на его начало. а все остальное можно вычислить через его битность и т.д. ну ладно пусть там доступ к памяти ограничен +-128 байт скажем - относительность. Это не сильно повлияет.
т.е. я тут даже представить не могу зачем мне доступ к памяти не относительно начала изображения или не относительн его частей.
опять же доступ к памяти и указатели - это основное в процессоре. вы действительно думаете, что разработчики процессоров ухудшили эту часть так, что она стала хуже 3х битных? по-моему там не только маркетологи сидят
no subject
Date: 2010-08-19 01:24 am (UTC)Про все остальное - говорить смысла дальше не вижу.
no subject
Date: 2010-08-19 05:10 am (UTC)