lamantyn: (Default)
[personal profile] lamantyn
прошло каких-то 25 лет; и, пожалуйста, 4gb памяти стоят сто баксов с хвостиком,
а винды могут использовать только 3.25 GB.

Фотошоп же, саббака, видит только 1.7GB.
Прийдется читать мануалы и выянять - знают ли адобовские программисты про PAE/4GT/AWE32 ...

Date: 2008-03-13 11:04 pm (UTC)
From: [identity profile] lamantyn.livejournal.com
Количество регистров - волюнтаризм, от разрядности не зависит.
"честные" int64 хороши когда они действительно есть.
скорость операции 2+2 не увеличится. И, как верно заметили в вашей ссылке, удваиваются расходы на хранение и перенос.
Т.е. с 32b/4GB имеет смысл переходить на 64b/8GB

Date: 2008-03-14 09:36 am (UTC)
From: [identity profile] iburyl.livejournal.com
Количество регистров по факту поставляется нам в одном пакете с разрядностью - если Вындовс 32-битный, то и дополнительные регистры не поддерживает.
Про int64 в какой-то мере согласен :) Коли нет, то и нет...
2+2, конечно, остаётся прежним, но если мы начинаем говорить о синусе или, там, экспоненте, то на одном факте наличия дополнительных регистров 10-30% (я этим занимаюсь профессионально и говорю вполне уверенно :)
Про удваивание расходов - это не так! Удваиваются только указатели. Но большая часть данных лежащих в памяти - это вовсе не указатели... Каков процент указателей 2%,5%,15%? Всё зависит от задачи... Тогда при чем здесь удвоение расходов по памяти?

Date: 2008-03-15 09:02 pm (UTC)
From: [identity profile] lamantyn.livejournal.com
Количество регистров по факту поставляется нам в одном пакете с разрядностью

Насколько я понимаю - нет. Это решение архитектора процессора.
x86-64 - 16, UltraSparc, Power, Alpha - 32,
Itanium - 128. И, надо заметить, не в коня корм.

Удваиваются только указатели

exe/dll файлы автоматически удвваиваются.
int64 MyArray[1000] не может занимать столько же места, столько int32 MyArray[1000].
соотвественно, программа где используется просто integer - раздует расход памяти.

этим занимаюсь профессионально

а чем, если не секрет?


Date: 2008-03-17 02:43 pm (UTC)
From: [identity profile] iburyl.livejournal.com
"Насколько я понимаю - нет. Это решение архитектора процессора.
x86-64 - 16, UltraSparc, Power, Alpha - 32,
Itanium - 128. И, надо заметить, не в коня корм."

По факту... Если код был скомпилирован под платформу Intel 64 (aka em64t) или оно же AMD64 (aka x86-64)... То мы одновременно получаем больше регистров и большие указатели, но теряем возможность запускаться в 32-бит осях... Если мы скомпилировались 32-битным компилятором, то мы теряем лишние регистры и указатели...

Про Итан - песня отдельная... Архитектура - загляденье, но чисто техническая нехватка герцев - вот это косяк... А писать что-то под Итан на ассемблере - вот оно счастье :)

exe/dll файлы не удваиваются... на практике могут даже уменьшится (не надо тащить спец оптимизации под старые архитектуры)... но в большинстве случаев некоторое увеличение, конечно, происходит... однако не exe'шники занимают подавляющую часть вашего винта/RAM'а ;)

если у вас раньше был int64, то и он занимал 64-бита, но работал медленно (эмулировался софтварно), а теперь быстрее.
если у вас раньше был int32, то и теперь он занимает 32-бита - он ни куда не делся... на примере C/C++ тип int как был раньше 32-битным, так и остался...

а чем я занимаюсь - оптимизацией (в том числе и на уровне ассемблера) кода для нескольких математических библиотек под разные платформы :)

Profile

lamantyn: (Default)
lamantyn

July 2016

S M T W T F S
     12
3456789
10111213141516
1718 1920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 7th, 2025 07:37 am
Powered by Dreamwidth Studios