![]() |
AW: Multithreading
Zitat:
![]() Zitat:
2. richtig 3. "Niemand wird mehr als 64Byte große Cachelines benötigen" - Spaß beiseite, derzeit ist das auf allen gängigen CPUs (zumindest auf denen Delphi läuft) ausschließlich so. Man kann das nun so machen wie das, was Uwe schon erwähnt hat, oder man setzt fest auf 64 Byte und kümmert sich darum, das anzupassen, sollte es mal passieren, dass CPUs rauskommen, bei denen das anders ist. ![]() ![]() |
AW: Multithreading
Statt "blind" 64 Byte, kannst'e auch einfach 8KB oder 64KB nehmen oder Sicherheitshalber 1GB :lol:
Da belegt zwar die Variable bissl unnötig viel Speicher, aber was soll's. :stupid: Nja 64 bzw 8 KB sind die Größen, wie Windows den RAM verwaltet. 64KB die Mindestgröße beim VirtualAlloc, aber intern dennoch nochmal in 8KB Stückchen verwaltet. Größer wird wohl keiner "diesesn" Cache bauen. * erstmal unnötig viel Platz in der CPU und wenn die CacheLine abgeglichen werden muß, müsste dann auch noch viel mehr geladen werden, was dann wiederrum auch viel mehr Zeit verschlampt. |
AW: Multithreading
Zitat:
Ist aber doppelt so schnell wie wenn sich die verschiedenen Kerne den Cache ständig ungültig machen. |
AW: Multithreading
Ja, so lange es gleich schnell ist, ist alles OK. (sind ja auch alle Threads an den selben Kern gebunden :lol:)
Schlimm wäre es nur, wenn es bei mehr Threads viel langsamer würde. (ein Bissl ist klar, durch die Overhad der Threadverwaltung) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz