🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #259

Re: optymalizacja

#259
From: tosamo
Date: Fri, 19 May 2006 13:28
60 lines
3227 bytes
Użytkownik "Bogdan (bogdro)" <bogdan@bogdan.pl> napisał w wiadomości 
news:e4k9m6$ogh$1@atlantis.news.tpi.pl...
>>
>> Wersje c i delphi oczywiscie nie maja tego problemu bo przy ladowaniu dll
>> cos tam na pewno
>> mieszaja juz z danymi.
>>
>> Problem rozwiazalo zapisanie czegos w LibMain (DllMain) do pamieci.
>>
>> Wiesz moze czemu tak jest ? Musze w dokumentacji projektu opisac ten 
>> projekt
>> a nie za bardzo
>> wiem gdzie tego szukac.
>
> Prawdopodobnie (bo nie znam Win) jest dokładnie tak, jak mówi Lopez.
> Nie wszystkie części kodu/danych są od razu ładowane do pamięci przez
> system. Jak po raz pierwszy odwołujesz się do niezaładowanej sekcji,
> występuje wyjątek Page Fault, bo tej strony nie ma w pamięci. System
> obsługuje ten wyjątek i ładuje odpowiednie sekcje (strony pamięci) z
> dysku do RAM. Zarówno obsługa wyjątków, jak i operacje na dysku trwają
> długo. Rozwiązaniem tego problemu jest właśnie dowolny dostęp do
> niezaładowanej sekcji.

OK. Dzieki.

> Nawiasem mówiąc, proponuję kod:
>
> mov DWORD PTR [Intermediate_Hash+20],067452301h

Ale takie cos :

mov DWORD PTR [Intermediate_Hash],067452301h
mov DWORD PTR [Intermediate_Hash+4],0EFCDAB89h
mov DWORD PTR [Intermediate_Hash+8],098BADCFEh
mov DWORD PTR [Intermediate_Hash+12],010325476h
mov DWORD PTR [Intermediate_Hash+16],0C3D2E1F0h

bedzie lepsze niz

mov eax,offset Intermediate_Hash
mov DWORD PTR [eax],067452301h
mov DWORD PTR [eax+4],0EFCDAB89h
mov DWORD PTR [eax+8],098BADCFEh
mov DWORD PTR [eax+12],010325476h
mov DWORD PTR [eax+16],0C3D2E1F0h

?  Wersja z rejestrem nie jest szybsza ?

> Długaśna z tego instrukcja wyjdzie, ale lepsza niż dwie. Wiesz, że ta
> instrukcja zapisuje dane poza tablicą Intermediate_Hash (która ma 20
> bajtów)?

Nie wiem skad tam sie wzielo te 20. W programie tego nie ma.

> Swoją drogą, można byłoby zrobić pożytek z pamięci podręcznej
> procesora: użycie instrukcji PREFETCH* mówi procesorowi,

Nie wiem w ktorym dokladnie procesorze sie to pojawilo ale watpie zeby
na tej uczelni mieli takie nowoczesne komputery ;) 
Technical Details
Message-ID: <e4kh6c$fp$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <e4f5nl$rj4$1@inews.gazeta.pl> <e4ffrk$he5$1@nemesis.news.tpi.pl> <e4fi7h$q1b$1@inews.gazeta.pl> <e4hbi4$fpm$1@atlantis.news.tpi.pl> <e4it6m$c00$1@inews.gazeta.pl> <e4j148$kn7$1@inews.gazeta.pl> <e4k9m6$ogh$1@atlantis.news.tpi.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: "tosamo" <tosamo@o2.pl>
Newsgroups: pl.comp.lang.asm
Subject: Re: optymalizacja
Date: Fri, 19 May 2006 15:28:40 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 62
Message-ID: <e4kh6c$fp$1@inews.gazeta.pl>
References: <e4f5nl$rj4$1@inews.gazeta.pl> <e4ffrk$he5$1@nemesis.news.tpi.pl> <e4fi7h$q1b$1@inews.gazeta.pl> <e4hbi4$fpm$1@atlantis.news.tpi.pl> <e4it6m$c00$1@inews.gazeta.pl> <e4j148$kn7$1@inews.gazeta.pl> <e4k9m6$ogh$1@atlantis.news.tpi.pl>
NNTP-Posting-Host: aakz207.neoplus.adsl.tpnet.pl
X-Trace: inews.gazeta.pl 1148045324 505 83.5.29.207 (19 May 2006 13:28:44 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Fri, 19 May 2006 13:28:44 +0000 (UTC)
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.1830
X-Priority: 3
X-RFC2646: Format=Flowed; Original
X-Newsreader: Microsoft Outlook Express 6.00.3790.1830
X-User: etet100
X-MSMail-Priority: Normal
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit