[quote=Peter]Компьютеры были разные, но процессоры в них были одинаковые, Intel Core 2 Quad 2.4GHz.
ну... я уж не говорю про опции компиляции и ос :(
я-бы на таких данных вообще-бы _ничего_ не утверждал.
Пишут, что в 64-разрядной системе какие-то инструкции быстрее выполняются,
я не интересовался подробностами.
да-да. быстрее. Более чем Вдвое! Я вам даже скажу какие: команды адресной арифметики, при адресе в 64 бита. Т.е. если вашему приложению нужно перепрыгнуть на 12Гб дальше, то это конечно нужно. А у вас такие приложения есть? Сколько ваша программа потребляет гигабайт оперативной памяти? :P
Ну а именно сами данные, уже много лет (с третьего пня) гоняются через 128и битное SSE, которое для того и придумано. Просто вы наверняка собирали свою программу с дефолтными опциями, вот и собрали так, что 32х битная версия не умеет SSE, ибо скажем во втором пне его ЕМНИП не было. А в первом пне без MMX не было даже MMX, всегда ваш К.О. Ну а в х64 SSE2 очевидно есть, тот же К.О., вот и собирали вы под SSE2. Ну и кто тут виноват? 32х битная архитектура, или разработчик, который не в курсе о технологиях 15и летней давности? (я про SSE, MMX ваще древность). Смысл в вашей программе, которая "умеет" работать на i80386? (в кавычках потому, что программа ваша может и умеет, но вот ОС, под которую она собрана, там даже не запустится).
Ну а на самом деле, разницы между режимами нет, и быть не может, во всяком случае до тех пор, пока у нас нет приложений, которые тратят >4Gb сразу.[/quote]
Программа компилировалась в обоих случаях с одинаковыми опциями, т.к. была просто перенесена, так что sse и sse2
были включены в обоих же случаях. В 32-разрядной Ubuntu Qt-4.7.2, а в 64-разрядной - 4.8.0.
Вообще меня как потребителя больше интересует сам факт - где работает быстрее, а не причина,
тем более, что от меня она не зависит.
Пётр.