2011-01-04 6 views
9

Po przeczytaniu an article na temat wpływu pamięci wirtualnej na wydajność aplikacji (a co za tym idzie na projektowanie), ponownie zdaję sobie sprawę z tego, jak mało wiem o dzisiejszej architekturze komputera. Mam tylko mgliste pojęcie o tym, jakie są pamięci podręczne, potoki, algorytmy przewidywania rozgałęzień, jak działają autobusy pamięci i prawdopodobnie dziesiątki innych artefaktów, które mogłyby znacznie poprawić wydajność mojego programu, gdybym tylko wiedział o nich.Dobry artykuł na temat nowoczesnych funkcji procesora/optymalizacji wydajności?

Dla mojej obrony mogę powiedzieć, że doskonale wiedziałem, czym jest VM (wirtualna pamięć) i jak działa, choć wstydzę się, że wcześniej nie myślałem o implikacjach.

Więc ... czy ktoś może polecić jakiekolwiek czytanie na ten temat? Znacznie wolałbym artykuły online, które można przeczytać za darmo - ale jeśli znasz dobrą książkę, nie wahaj się też jej dodać!

P.S. Byłbym również zainteresowany tym, jak te lekcje wpływają na nowoczesne środowiska wysokiego poziomu, takie jak .NET, który jest moją główną rezydencją.

+0

+1. Przepraszam, nie mogę ci pomóc, ale dziękuję za pytanie, bo teraz uczę się trochę więcej. –

+0

Jeśli nie tworzysz systemu operacyjnego lub czegoś podobnego, nie musisz zajmować się tymi problemami (a nawet * nie możesz *, ponieważ jest to zamknięta warstwa architektury oprogramowania). Po drugiej stronie, każdy powinien wiedzieć, jak działa inny procesor, VM, stronicowanie, 64- lub 32-bitowe itd. – ern0

+0

@ ern0 - Oczywiście, system operacyjny ma sporą kontrolę nad twoją aplikacją - tak, jak może to zatrzymać w dowolnym momencie, zepsuć swoją maszynę wirtualną itp. Ale co jakiś czas masz rdzeń procesora dla siebie samego, więc rozsądnie jest próbować robić jak najwięcej, póki jeszcze możesz. –

Odpowiedz

2

Właśnie znalezione this PDF przez Ulricha Dreppera, zatytułowane "Co każdy programista powinien wiedzieć o pamięci". Nie przeczytałem tego, ale wygląda na miejscu!

1

Wystarczy popatrzeć na tych prowadnicach przez firmę Intel i AMD:

  • Intel (R) 64 i IA-32 Architectures Optimization Reference Manual (PDF 4,5MB)
  • Oprogramowanie Optymalizacja dla procesorów AMD Rodzina 15h (PDF 1,9 MB)

Jednak bardziej koncentruje się na C/C++. Ale wiele optymalizacji powinno działać również na .NET.