AngelioS Опубликовано 28 ноября, 2009 Поделиться Опубликовано 28 ноября, 2009 Вопрос такой...запускаю линейку - проц сразу грузиться на 50-58% и не опускаеться ниже, когде же оставить окно, но активным сделать окно аськи или диспетчер задач на фоне линейки - нагрузка проца сразу до 4-8% опускаеться... Вопрос такой, почему при открытом окне линейки проц грузиться на 50%+ и не опускаеться ниже... приоритет и работу только на 1 ядре ставил результата не дало... можно ли это исправить и если да то как ? P.S. Проц AMD X2 6000+ 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ася Опубликовано 28 ноября, 2009 Поделиться Опубликовано 28 ноября, 2009 счистливый у мну на 100 сразу , а админ уже говорил, что компы пора менять :'( 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AngelioS Опубликовано 28 ноября, 2009 Автор Поделиться Опубликовано 28 ноября, 2009 Еще одно... в Опциях Аудиосистема если убрать галочку Снижать нагрузку в фоновом редиме - то те манипуляцию коорые описал выше не работают, проц напостой 50%+ нагружаеться... будь то 1 или 2 окна... P.S. Если б проц до 50-55 градусов не грелся было б пох... 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
s1NgLе Опубликовано 28 ноября, 2009 Поделиться Опубликовано 28 ноября, 2009 да это нормально еще. у меня при запуске квипа процессор нагружается на все +75% :D 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
pimi Опубликовано 28 ноября, 2009 Поделиться Опубликовано 28 ноября, 2009 Еще одно... в Опциях Аудиосистема если убрать галочку Снижать нагрузку в фоновом редиме - то те манипуляцию коорые описал выше не работают, проц напостой 50%+ нагружаеться... будь то 1 или 2 окна... P.S. Если б проц до 50-55 градусов не грелся было б пох... Ты удивлен, что при галочке Снижать нагрузку в фоновом режиме - снижает нагрузку в фоном режиме? 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AngelioS Опубликовано 28 ноября, 2009 Автор Поделиться Опубликовано 28 ноября, 2009 Ты удивлен, что при галочке Снижать нагрузку в фоновом режиме - снижает нагрузку в фоном режиме? Смешно... 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Judgek Опубликовано 28 ноября, 2009 Поделиться Опубликовано 28 ноября, 2009 Вопрос такой...запускаю линейку - проц сразу грузиться на 50-58% и не опускаеться ниже, когде же оставить окно, но активным сделать окно аськи или диспетчер задач на фоне линейки - нагрузка проца сразу до 4-8% опускаеться... Вопрос такой, почему при открытом окне линейки проц грузиться на 50%+ и не опускаеться ниже... приоритет и работу только на 1 ядре ставил результата не дало... можно ли это исправить и если да то как ? P.S. Проц AMD X2 6000+ я что то не понимаю сути вопроса, автор ты о чем? тебе мешает то что у тебя проц нагружен? так ты посмотри сколько действий обрабатывает он, сколько графики через себя прогоняет + инет 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
npaqeqywka Опубликовано 28 ноября, 2009 Поделиться Опубликовано 28 ноября, 2009 nf// мне бы такие проблемы... тут запускаеш окно линейки + если "не дай Бог" необходимо запустить еще какое-то окно, то это лажище такой будет... ;D 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AngelioS Опубликовано 28 ноября, 2009 Автор Поделиться Опубликовано 28 ноября, 2009 я что то не понимаю сути вопроса, автор ты о чем? тебе мешает то что у тебя проц нагружен? так ты посмотри сколько действий обрабатывает он, сколько графики через себя прогоняет + инет Вот именно. Повотрюсь еще раз... запущено в окнном режиме окно линейки - загрузка 50%, запусскаю диспетчер задач или открываю сообщение в аське в фоновом режиме(тоесть все то же окно на экране и все так же работает) - нагрузка падает до 0-8%. P.S. Раньше задротил на х3 сорком ник Aron4uk , так там запускал по 3-4 окна на осадах и на основном бегал более менее, а когад не было осады то отлично бегал без фризов и т.д., а сейчас на хардине будь то 1 окно или 2 окна(больше надо покупать уже за голд) играть не комфортно.. фпс ппц просто...(фишка с утопии про фпс пинг и т.д.. походу именно тот дрын с утопии пришол сюда ) от 1 до 29 в лучшем случае.... на природе где народу поменьше вроде получше но все же... 2 фотки... на первой активное окно линейки, на второй окно линейки в фоновом режиме. 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
NATHAN Опубликовано 28 ноября, 2009 Поделиться Опубликовано 28 ноября, 2009 Вопрос не в том почему снижает при галочке, а в том отчего стока жрет. С учетом того что всякие граф приблуды счас считаются на видеокартовом камне, а не на ЦП. И причем тут трафф и инет к ЦП? могу пояснить суть проблемы, наши любимые корейцы никогда не умели писать оптимальный код, и уж темболее у них всегда были проблемы с мощными компами (2 и более процессора) а теперь разжую, вся нагрузка идёт на проц компа,даже видео... кстати единственное место,где мой фпс отображаемый системой выше 90 - это грация ;D на материке адена выше 30 не бывает,нипонятна ))) 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
gray2 Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 >Вопрос не в том почему снижает при галочке, а в том отчего стока жрет пле... А СКОЛЬКО ДОЛЖНА ЖРАТЬ ТО?? Методику расчета того сколько должна жрать приложи - обсудим. А до тех пор - посох... Enuma Elish имхо тут вопрос не в кривизне - проц нагружен по максимуму ибо выдает все что может (макс фпс). Вот если проц (в данном случае ядро) будет загружен на половину и фпс будет в 2 раза ниже возможного - вот это будет кривизна. зы. сколько помню (со времен с3) ла всегда 100% съедала одно ядро. ззы. комп со встроеным видео (iG41 вроде, целерон 3,3@4.4Ггц) выдает 10-15 фпс, при установке в него 9600GT фпс растет до 30-38 (38 на экране логина), т.е. видеокарта роль играет не малую. Та же 9600GT в паре с q9400@3.6Гг на логине выдает 110 фпс. 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Maxx Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 Бываест и 220+фпс, тебе что мешает както нагрузка проца? Мне строго по. 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 у меня в окне выбора чара 220 фпс ;D в 2 окна в более-менее людных локациях до 80 доходит в ГХ максим 25 играюсь на: AMD Athlon II x245 DDR2 800Mhz Kingston 2048mb 2 планки asus GF EN9800GT (512 mb|DDR3) винт 7200 об/мин, 16 метров кеша стоит Win7 Pro x64 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 Плюс к теме, такое-же как у автора. На С4 спокойно запускал 7+ окон. Тут еле в 2 окна на минимально режиме. Можно ли как-то оптимизировать нагрузку? купи себе такое: http://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D1%81%D1%83%D0%BF%D0%B5%D1%80%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
DobroNerv Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 Автор у тебя прог не стоит сейчас никаких которые общую нагрузку по ядрам раскидывают? В основном от этого софта проблемы с загрузкой ЦП. 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
respawn Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 могу пояснить суть проблемы, наши любимые корейцы никогда не умели писать оптимальный код, и уж темболее у них всегда были проблемы с мощными компами (2 и более процессора) а теперь разжую, вся нагрузка идёт на проц компа,даже видео... Да ты видать тока в универ пашел учица епта, ты что такое гонишь, причем тут код и корейцы ? Ты знаешь что все это писалось с использованием графических библиотек аля OpenGL, DirectX? а там хоть ты кореец, хоть не кореец эти библиотеки уже сами передают обработку графики на видеокарту, если она такое поддерживает 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
React1ve Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 у меня в окне выбора чара 220 фпс ;D в 2 окна в более-менее людных локациях до 80 доходит в ГХ максим 25 это не круто в городах в среднем 90-100 в гх 40-45 Post Merge: [time]29 Ноября 2009, 15:23:45[/time] но тачёнка у мну убогая Intel Core 2 Duo 3.33G/1333MHz/6M E8600 S775 OEM хочю себе на НГ подарить Intel Core i7 950 3.06G 4x256Kb/8Mb LGA1366 OEM по теме 50% нагрузка это норм если у тя не i7 стоит 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 Да ты видать тока в универ пашел учица епта, ты что такое гонишь, причем тут код и корейцы ? Ты знаешь что все это писалось с использованием графических библиотек аля OpenGL, DirectX? а там хоть ты кореец, хоть не кореец эти библиотеки уже сами передают обработку графики на видеокарту, если она такое поддерживает а сам-то?) злодва писаласть именно под Direct3D (DirectX), т.к. именно эта графическая бибилиотека была более популярна во времена с1. а на ГФ используется та же DirectX, что и во времена С1, просто у нее больше возможностей. но сама эта библиотека написана очень неудачно, т.к. жрет тонны ресурсов как CPU так и GPU. тот же OpenGlOpenAL хавает в разы меньше ресурсов при аналогичной произваодительности/возможностях. по поводу кривого кода: любую операцию можно сделать оптимальнее. к примеру a=b*2 будет работать в десяток раз медленнее, чем a=b shl 2 (побайтовый сдвиг влево увеличивает число в 2 раза) и таких примеров можно привести кучу. плюч к этому некоторые операции можно делать на ассемблере. а корейцы при написании игры, судя по результатам, не особо стремились его оптимизировать (частично из-за невозможности измения unreal engine, на основе которого была построена графическая часть клиента, частично от недостатка времени, которое было выделено на написание клиента). вот и получается что ла2 даже не может толком освобождать память из-под своих ресурсов (тот же вов при загрузке новой локи выкидывает из памяти все ненужные ресурсы от старой). отсюда и нагрузка на комп 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
krieger Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 а сам-то?) злодва писаласть именно под Direct3D (DirectX), т.к. именно эта графическая бибилиотека была более популярна во времена с1. а на ГФ используется та же DirectX, что и во времена С1, просто у нее больше возможностей. но сама эта библиотека написана очень неудачно, т.к. жрет тонны ресурсов как CPU так и GPU. тот же OpenGlOpenAL хавает в разы меньше ресурсов при аналогичной произваодительности/возможностях. майкрософтский релиз опенжл очень кривой и хавает ресурсы нерационально. сделано специально, чтобы директХ казался на его фоне канфэткой и покупали его. силиконовский опенжл намного прямее, но его пойди поставь сначала ;D автор мог бы уже и догадаться что на серве с бОльшим онлайном будет больше моделек игроков/эффектов и соотв. нагрузка будет больше. 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
respawn Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 а сам-то?) злодва писаласть именно под Direct3D (DirectX), т.к. именно эта графическая бибилиотека была более популярна во времена с1. а на ГФ используется та же DirectX, что и во времена С1, просто у нее больше возможностей. но сама эта библиотека написана очень неудачно, т.к. жрет тонны ресурсов как CPU так и GPU. тот же OpenGlOpenAL хавает в разы меньше ресурсов при аналогичной произваодительности/возможностях. Пепец ты нубас, ты даже не знаешь чем DirectX отличаеться от OpenGL, это две графические библиотеки, только DirectX штампует микромягкие, OpenGL спецификации штампуют производители видеокарт, и ну никак у OpenGL не может быть возможностей меньше чем у DirectX, ну да ладно это все оцтой, но ты ведь дальше пошол по поводу кривого кода: любую операцию можно сделать оптимальнее. к примеру a=b*2 будет работать в десяток раз медленнее, чем a=b shl 2 (побайтовый сдвиг влево увеличивает число в 2 раза) так вы в пятницу побайтовые сдвиги проходили, да будет тебе известно что на дворе 21 век, и соверменный компилятор умнее чем ты, и оптимизирует эти две конструкции таким образом что в асм коде они будут еквивалентны, при том всем что ты привел неудачный пример с умножением и таких примеров можно привести кучу. плюч к этому некоторые операции можно делать на ассемблере. а корейцы при написании игры, судя по результатам, не особо стремились его оптимизировать (частично из-за невозможности измения unreal engine, на основе которого была построена графическая часть клиента, частично от недостатка времени, которое было выделено на написание клиента). вот и получается что ла2 даже не может толком освобождать память из-под своих ресурсов (тот же вов при загрузке новой локи выкидывает из памяти все ненужные ресурсы от старой). отсюда и нагрузка на комп Бугога, а ну раскажи какую ты там операцию собрался делать на ассемблере ? ты явно тока на первый курс поступил, на асме нынче пишут драйвера сынок, может по твоему вообще всю Л2 на асм переписать? а че бы и нет, у нас ведь корейский код, а то что эффекты анизотропной фильтрации, бамп маппинг, шейдеры, анимация, ИИ, и т.д. - этож все оцтой, для детей умник иди учись, может что путевое из тебя и выйдет 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 Пепец ты нубас, ты даже не знаешь чем DirectX отличаеться от OpenGL, это две графические библиотеки, только DirectX штампует микромягкие, OpenGL спецификации штампуют производители видеокарт, и ну никак у OpenGL не может быть возможностей меньше чем у DirectX, ну да ладно это все оцтой, но ты ведь дальше пошол так вы в пятницу побайтовые сдвиги проходили, да будет тебе известно что на дворе 21 век, и соверменный компилятор умнее чем ты, и оптимизирует эти две конструкции таким образом что в асм коде они будут еквивалентны, при том всем что ты привел неудачный пример с умножением Бугога, а ну раскажи какую ты там операцию собрался делать на ассемблере ? ты явно тока на первый курс поступил, на асме нынче пишут драйвера сынок, может по твоему вообще всю Л2 на асм переписать? а че бы и нет, у нас ведь корейский код, а то что эффекты анизотропной фильтрации, бамп маппинг, шейдеры, анимация, ИИ, и т.д. - этож все оцтой, для детей умник иди учись, может что путевое из тебя и выйдет //··········································································· // Fast CRC64 (ECMA DLT standard) calculator // (c) Aleksandr Sharahov 2009 // Free for any use //··········································································· {$WARN UNSAFE_TYPE OFF} {$WARN UNSAFE_CODE OFF} {$WARN UNSAFE_CAST OFF} unit ShaCrc64Unit; interface //For reference/validation only (or for very small buffer) procedure ReferenceRefreshCRC64(var CRC: int64; BufPtr: pointer; BufLen: integer); procedure NormalRefreshCRC64(var CRC: int64; BufPtr: pointer; BufLen: integer); procedure ReflectedRefreshCRC64(var CRC: int64; BufPtr: pointer; BufLen: integer); //Use these functions procedure ShaNormalRefreshCRC64(var CRC: int64; BufPtr: pointer; BufLen: integer); procedure ShaReflectedRefreshCRC64(var CRC: int64; BufPtr: pointer; BufLen: integer); //or these function NormalCRC64(BufPtr: pointer; BufLen: integer): int64; function ReflectedCRC64(BufPtr: pointer; BufLen: integer): int64; //··········································································· implementation var ReferenceTable64: array[0..255] of int64; ByteSwappedTable64: array[0..7] of array[0..255] of int64; ReflectedTable64: array[0..7] of array[0..255] of int64; //··········································································· procedure ReferenceRefreshCRC64(var CRC: int64; BufPtr: pointer; BufLen: integer); asm test edx, edx jz @ret neg ecx jge @ret sub edx, ecx push ebx push esi push edi push eax mov ebx, [eax+4] mov esi, [eax] mov eax, ebx @next: movzx edi, byte [edx + ecx] shr ebx, 24 xor edi, ebx shld eax, esi, 8 xor eax, [edi*8 + ReferenceTable64 + 4] shl esi, 8 xor esi, [edi*8 + ReferenceTable64] mov ebx, eax add ecx, 1 jz @done movzx edi, byte [edx + ecx] shr eax, 24 xor edi, eax shld ebx, esi, 8 xor ebx, [edi*8 + ReferenceTable64 + 4] shl esi, 8 xor esi, [edi*8 + ReferenceTable64] mov eax, ebx add ecx, 1 jnz @next @done: pop eax mov [eax], esi mov [eax+4], ebx pop edi pop esi pop ebx @ret: end; //··········································································· procedure ReflectedRefreshCRC64(var CRC: int64; BufPtr: pointer; BufLen: integer); asm test edx, edx jz @ret neg ecx jge @ret sub edx, ecx push ebx push esi push eax mov ebx, [eax] mov esi, [eax+4] xor eax, eax @next: mov al, byte [edx + ecx] xor al, bl shrd ebx, esi, 8 xor ebx, [eax*8 + ReflectedTable64] shr esi, 8 xor esi, [eax*8 + ReflectedTable64 + 4] add ecx, 1 jnz @next @done: pop eax mov [eax], ebx mov [eax+4], esi pop esi pop ebx @ret: end; //··········································································· procedure NormalRefreshCRC64(var CRC: int64; BufPtr: pointer; BufLen: integer); asm test edx, edx jz @ret neg ecx jge @ret sub edx, ecx push ebx push esi push eax mov ebx, [eax+4] mov esi, [eax] bswap ebx bswap esi xor eax, eax @next: mov al, byte [edx + ecx] xor al, bl shrd ebx, esi, 8 xor ebx, [eax*8 + ByteSwappedTable64] shr esi, 8 xor esi, [eax*8 + ByteSwappedTable64 + 4] add ecx, 1 jnz @next @done: bswap ebx bswap esi pop eax mov [eax+4], ebx mov [eax], esi pop esi pop ebx @ret: end; //··········································································· procedure ShaNormalRefreshCRC64(var CRC: int64; BufPtr: pointer; BufLen: integer); asm test edx, edx jz @ret neg ecx jz @ret push ebx push esi push eax mov ebx, [eax+4] mov esi, [eax] bswap ebx bswap esi xor eax, eax @head: test dl, 3 jz @bodyinit mov al, byte [edx] inc edx xor al, bl shrd ebx, esi, 8 xor ebx, [eax*8 + ByteSwappedTable64] shr esi, 8 xor esi, [eax*8 + ByteSwappedTable64 + 4] add ecx, 1 jnz @head bswap ebx bswap esi pop eax mov [eax+4], ebx mov [eax], esi pop esi pop ebx @ret: ret @bodyinit: sub edx, ecx add ecx, 8 jg @bodydone push edi push ebp mov ebp, ecx // crc64: ebx-lo esi-hi // data: eax-lo ecx-hi // buffer: edx-base ebp-count // table: edi-index @bodyloop: mov eax, [edx + ebp - 8] xor eax, ebx movzx edi, al mov ecx, [edx + ebp - 4] xor ecx, esi mov ebx, [edi*8 + ByteSwappedTable64 + 2048*7] mov esi, [edi*8 + ByteSwappedTable64 + 2048*7 + 4] movzx edi, ah xor ebx, [edi*8 + ByteSwappedTable64 + 2048*6] xor esi, [edi*8 + ByteSwappedTable64 + 2048*6 + 4] shr eax, 16 movzx edi, al xor ebx, [edi*8 + ByteSwappedTable64 + 2048*5] xor esi, [edi*8 + ByteSwappedTable64 + 2048*5 + 4] movzx edi, ah xor ebx, [edi*8 + ByteSwappedTable64 + 2048*4] xor esi, [edi*8 + ByteSwappedTable64 + 2048*4 + 4] movzx edi, cl xor ebx, [edi*8 + ByteSwappedTable64 + 2048*3] xor esi, [edi*8 + ByteSwappedTable64 + 2048*3 + 4] movzx edi, ch xor ebx, [edi*8 + ByteSwappedTable64 + 2048*2] xor esi, [edi*8 + ByteSwappedTable64 + 2048*2 + 4] shr ecx, 16 movzx edi, cl xor ebx, [edi*8 + ByteSwappedTable64 + 2048*1] xor esi, [edi*8 + ByteSwappedTable64 + 2048*1 + 4] movzx edi, ch xor ebx, [edi*8 + ByteSwappedTable64 + 2048*0] xor esi, [edi*8 + ByteSwappedTable64 + 2048*0 + 4] add ebp, 8 jle @bodyloop mov ecx, ebp pop ebp pop edi @bodydone: sub ecx, 8 je @result xor eax, eax @tail: mov al, byte [edx + ecx] xor al, bl shrd ebx, esi, 8 xor ebx, [eax*8 + ByteSwappedTable64] shr esi, 8 xor esi, [eax*8 + ByteSwappedTable64 + 4] add ecx, 1 jnz @tail @result: bswap ebx bswap esi pop eax; mov [eax+4], ebx mov [eax], esi pop esi pop ebx end; //··········································································· procedure ShaReflectedRefreshCRC64(var CRC: int64; BufPtr: pointer; BufLen: integer); asm test edx, edx jz @ret neg ecx jz @ret push ebx push esi push eax mov ebx, [eax] mov esi, [eax+4] xor eax, eax @head: test dl, 3 jz @bodyinit mov al, byte [edx] inc edx xor al, bl shrd ebx, esi, 8 xor ebx, [eax*8 + ReflectedTable64] shr esi, 8 xor esi, [eax*8 + ReflectedTable64 + 4] add ecx, 1 jnz @head pop eax mov [eax], ebx mov [eax+4], esi pop esi pop ebx @ret: ret @bodyinit: sub edx, ecx add ecx, 8 jg @bodydone push edi push ebp mov ebp, ecx // crc64: ebx-lo esi-hi // data: eax-lo ecx-hi // buffer: edx-base ebp-count // table: edi-index @bodyloop: mov eax, [edx + ebp - 8] xor eax, ebx movzx edi, al mov ecx, [edx + ebp - 4] xor ecx, esi mov ebx, [edi*8 + ReflectedTable64 + 2048*7] mov esi, [edi*8 + ReflectedTable64 + 2048*7 + 4] movzx edi, ah xor ebx, [edi*8 + ReflectedTable64 + 2048*6] xor esi, [edi*8 + ReflectedTable64 + 2048*6 + 4] shr eax, 16 movzx edi, al xor ebx, [edi*8 + ReflectedTable64 + 2048*5] xor esi, [edi*8 + ReflectedTable64 + 2048*5 + 4] movzx edi, ah xor ebx, [edi*8 + ReflectedTable64 + 2048*4] xor esi, [edi*8 + ReflectedTable64 + 2048*4 + 4] movzx edi, cl xor ebx, [edi*8 + ReflectedTable64 + 2048*3] xor esi, [edi*8 + ReflectedTable64 + 2048*3 + 4] movzx edi, ch xor ebx, [edi*8 + ReflectedTable64 + 2048*2] xor esi, [edi*8 + ReflectedTable64 + 2048*2 + 4] shr ecx, 16 movzx edi, cl xor ebx, [edi*8 + ReflectedTable64 + 2048*1] xor esi, [edi*8 + ReflectedTable64 + 2048*1 + 4] movzx edi, ch xor ebx, [edi*8 + ReflectedTable64 + 2048*0] xor esi, [edi*8 + ReflectedTable64 + 2048*0 + 4] add ebp, 8 jle @bodyloop mov ecx, ebp pop ebp pop edi @bodydone: sub ecx, 8 je @result xor eax, eax @tail: mov al, byte [edx + ecx] xor al, bl shrd ebx, esi, 8 xor ebx, [eax*8 + ReflectedTable64] shr esi, 8 xor esi, [eax*8 + ReflectedTable64 + 4] add ecx, 1 jnz @tail @result: pop eax; mov [eax], ebx mov [eax+4], esi pop esi pop ebx end; //··········································································· function NormalCRC64(BufPtr: pointer; BufLen: integer): int64; var crc64: int64; begin; crc64:=-1; ShaNormalRefreshCRC64(crc64, BufPtr, BufLen); Result:=not crc64; end; //··········································································· function ReflectedCRC64(BufPtr: pointer; BufLen: integer): int64; var crc64: int64; begin; crc64:=-1; ShaReflectedRefreshCRC64(crc64, BufPtr, BufLen); Result:=not crc64; end; //··········································································· procedure ByteSwap(var Value: int64); asm mov ecx, [eax] mov edx, [eax+4] bswap ecx bswap edx mov [eax+4], ecx mov [eax], edx end; //··········································································· function GetReflectedPoly(Poly: int64): int64; var i: integer; begin; Result:=0; for i:=0 to 63 do begin; Result:=(Result shl 1) or (Poly and 1); Poly:=Poly shr 1; end; end; //··········································································· function CRC64Init: boolean; const EcmaPoly= $42F0E1EBA9EA3693; //ECMA DLT standard (normal form), reflected form = $C96C5795D7870F42; //Other found polinomials OldProteinReflectedPoly= $d800000000000000; //Bad poly (reflected ISO 3309) - too many collisions on proteins with two mutations NewProteinReflectedPoly= $95AC9329AC4BC9B5; //By David T. Jones for protein data banks(reflected form) var Poly, ReflectedPoly, c: int64; i, j: integer; begin; Poly:=EcmaPoly; ReflectedPoly:=$C96C5795D7870F42; //ReflectedPoly:=NewProteinReflectedPoly; for i:=0 to 255 do begin; c:=i; for j:=1 to 8 do if odd(c) then c:=(c shr 1) xor ReflectedPoly else c:=(c shr 1); ReflectedTable64[0][i]:=c; c:=i; c:=c shl 56; for j:=1 to 8 do if c<0 then c:=(c shl 1) xor Poly else c:=(c shl 1); ReferenceTable64[i]:=c; ByteSwap(c); ByteSwappedTable64[0][i]:=c; end; for i:=0 to 255 do begin; c:=ReflectedTable64[0][i]; for j:=1 to 7 do begin; c:=(c shr 8) xor ReflectedTable64[0][byte(c)]; ReflectedTable64[j][i]:=c; end; c:=ByteSwappedTable64[0][i]; for j:=1 to 7 do begin; c:=(c shr 8) xor ByteSwappedTable64[0][byte(c)]; ByteSwappedTable64[j][i]:=c; end; end; Result:=true; c:=-1; ReferenceRefreshCRC64(c,@ReferenceTable64[0],SizeOf(ReferenceTable64)); Result:=Result and ($305CD291B39AA09A=not c); c:=-1; NormalRefreshCRC64(c,@ByteSwappedTable64[0,0],SizeOf(ByteSwappedTable64)); Result:=Result and ($F0347B5C2C7411D2=not c); c:=-1; ShaNormalRefreshCRC64(c,@ByteSwappedTable64[0,0],SizeOf(ByteSwappedTable64)); Result:=Result and ($F0347B5C2C7411D2=not c); if ReflectedPoly=$C96C5795D7870F42 then begin; c:=-1; ReflectedRefreshCRC64(c,@ReflectedTable64[0,0],SizeOf(ReflectedTable64)); Result:=Result and ($014ED9B63590C55E=not c); c:=-1; ShaReflectedRefreshCRC64(c,@ReflectedTable64[0,0],SizeOf(ReflectedTable64)); Result:=Result and ($014ED9B63590C55E=not c); end; end; //··········································································· initialization CRC64init; end. попробуй напиши аналог на любом языке высокого уровня и сравни время выполнения, раз такой умный. потом, как обосрешься, пойди поищи книги по оптимизации вычислений, русскому языку, этике. а лучше пойди в школу на уроках посиди, вместо того, чтобы высерами на форуме раскидываться, при этом не разбираясь в том, что ты пишешь (я понимаю в гугле каждый может найти инфу) Ах, да, забыл добавить. в любой программе, которая ведет сложные и ресурсоемкие вычисления, по-крайней мере в 50% исходного кода используется ассемблер, т.к. он в нынешнее время обеспечивает наиболее высокую скорость вычислений. а то что ты написал по поводу оптимизации операций компиллятором - полный бред. попробуй такое напиши на любом нормальном форуме - тут же будешь обсмеян, забросан какашками и забанен. ;D 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
krieger Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 Zomb1e ближе к правде пишет. в тех же фотошопах/премьерах и т.п. все графические фильтры, как правило, на 90% пишут вручную на асме. в противном случае вы бы сутками ждали их обработки для интересующихся ассемблером и оптимизацией: kkrieger (98kb) в опред. кругах баян, но думаю здесь не все видели 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 я не просто ближе к правде пишу, оно так и есть . тело просто реально не шарит что пишет, т.к. не знает элементарной разницы между языками высокого уровня и низкого. specially 4 respawn: 1. разница между асмом и той же с/с++ при компилляции прог заключается в том, что асмовские проги компиллируюся в com!!! файлы (тобиш чистый бинарный код), а программы написанные на языках высокого уровня компилятся в PE (Portal Executable) файлы, тобишь екзешники. для того чтобы заставить работать com, требуется намного меньше времени, чем в случае с exe-файлом, т.к. сам экзешник предварительно транслируется в машинный код, а только лишь после этого уже выполняется. 2. по поводу моего "неудачного примера". да будет тебе известно, что операции умножения и деления являются самыми длительными в процессоре, т.к. занимают несколько тактов процессорного времени. а операция бинарного сдвига аж целый 1. так что иди дитятко учи основы, почитай фундаментальную литературу по программированию и принципах работы эвм, а потом лишь суйся на форумы и бросайся фразами "нубас, неуч, школьник, идиот и др.". А то поначитываются "как освоить **** за 21 день" и считаются себя мегакрутыми специалистами. 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
krieger Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 я не просто ближе к правде пишу, оно так и есть . тело просто реально не шарит что пишет, т.к. не знает элементарной разницы между языками высокого уровня и низкого. specially 4 respawn: 1. разница между асмом и той же с/с++ при компилляции прог заключается в том, что асмовские проги компиллируюся в com!!! файлы (тобиш чистый бинарный код), а программы написанные на языках высокого уровня компилятся в PE (Portal Executable) файлы, тобишь екзешники. для того чтобы заставить работать com, требуется намного меньше времени, чем в случае с exe-файлом, т.к. сам экзешник предварительно транслируется в машинный код, а только лишь после этого уже выполняется. 2. по поводу моего "неудачного примера". да будет тебе известно, что операции умножения и деления являются самыми длительными в процессоре, т.к. занимают несколько тактов процессорного времени. а операция бинарного сдвига аж целый 1. так что иди дитятко учи основы, почитай фундаментальную литературу по программированию и принципах работы эвм, а потом лишь суйся на форумы и бросайся фразами "нубас, неуч, школьник, идиот и др.". А то поначитываются "как освоить **** за 21 день" и считаются себя мегакрутыми специалистами. 1. не обязательно. 2. пример неудачный, там непонятен тип чисел, а твой асм-аналог прокатит только с целыми. */ не самые длительные ;D 3 такта. есть больше 3. 2респавн: в опенжл / директХ присутсвует только простейшая оптимизация (по глубине + cullface), всё остальное (октарные деревья, порталы и пр.) пишется вручную авторами движка UT. в посте № 18 ты заовнился лучше коментим программку по моему линку 8) 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 да в эту игрулю я играл еще классе в 11м (лет 6-7 назад), ток там еще был 32-метровый дат файл 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
krieger Опубликовано 29 ноября, 2009 Поделиться Опубликовано 29 ноября, 2009 да в эту игрулю я играл еще классе в 11м (лет 6-7 назад), ток там еще был 32-метровый дат файл он создаётся этим ехе-шником при 1м запуске. его можно удалить, но тогда при 2м и последующих запусках снова придётся ждать 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Lisapet Опубликовано 30 ноября, 2009 Поделиться Опубликовано 30 ноября, 2009 ну во первых Л2 не поддерживает многопоточность, у меня 4 ядра, грузит в общем ~25 %, соответственно 1 ядро токо корячится. Скорее всего движок игрой как был, таким и остался, без серьезных адаптаций под новое железо. И не стоит думать что компы слабые и не тянут,надо новый покупать , гон все это. Ну конечно, лока в ГХ палюбасу будет лагать и за присутствия 500+ персов, процу тяжко обрабатывать их, но и города там где около 50 персов, иметь 30 фпс это смешно 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Xplo1t Опубликовано 30 ноября, 2009 Поделиться Опубликовано 30 ноября, 2009 у меня в окне выбора чара 220 фпс ;D Ыыы... У меня под 400 что ли... ;D да в эту игрулю я играл еще классе в 11м (лет 6-7 назад), ток там еще был 32-метровый дат файл Ты на ОБТ в Корее играл что ли? Балабол мля... 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 30 ноября, 2009 Поделиться Опубликовано 30 ноября, 2009 Ыыы... У меня под 400 что ли... ;D Ты на ОБТ в Корее играл что ли? Балабол мля... баран, читай внимательнее, я про игрулю в 92 кб писал. 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Xplo1t Опубликовано 30 ноября, 2009 Поделиться Опубликовано 30 ноября, 2009 баран, читай внимательнее, я про игрулю в 92 кб писал. Барана ты в зеркале по утрам видишь... 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.