AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Hat jemand schon eine Dateisuche für Multicore geschrieben?
Thema durchsuchen
Ansicht
Themen-Optionen

Hat jemand schon eine Dateisuche für Multicore geschrieben?

Ein Thema von Dezipaitor · begonnen am 15. Okt 2007 · letzter Beitrag vom 31. Okt 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#11

Re: Hat jemand schon eine Dateisuche für Multicore geschrieb

  Alt 16. Okt 2007, 16:37
Auch hier gilt: Befinden sich die Daten auf einer physikalischen Platte, würde ich es tunlichst vermeiden, mehrere Threads auf die Dateien loszulassen.

Ein Thread pro physikalisches Laufwerk ist da ideal.

Ggf. lohnt es sich jedoch, einen Thread die Daten lesen-, und ggf. mehrere Threads die gelesenen Daten auswerten zu lassen. Auch Schreibvorgänge sollten dann tunlichst nur in dem einem 'Zugriffs-'Thread pro Platte vorgenommen werden.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#12

Re: Hat jemand schon eine Dateisuche für Multicore geschrieb

  Alt 16. Okt 2007, 17:52
Also ich hab mir mal die Vista Suche etwas genauer angeschaut und habe dazu einen großen nicht indizierten Ordner verwendet.

Suche nach *.hlp Dateien in nicht indizierten Ordner. Vor jeder Suche wird das Suchergebniss gelöscht, indem krz nach etwas anderem gesucht wird.
Folgendes Bild habe ich bekommen:

Kerne : Elemente gefunden : Zeit : Auslastung (Kernnummer)

4 : 250 : 2:18 : zuerst 60-80%(1), dann nach 5-10sek 5-10%(1), 15-25%(2-4)
2 : 250 : 2:30 : 25-40% (3,4)
1 : 250 : 2:06 : 70-100% (4)

Ich habe die Kernanzahl für den Prozess explorer.exe entsprechend eingestellt.
Ich habe jeden Test 2 mal durchgeführt und dann das Mittel gebildet.

Das Ergebnis ist wohl eindeutig, obwohl ich mir nicht erklären kann, warum 2 Kerne solange brauchen. Ich werde mal den Test bei Gelegenheit auch unter XP durchführen.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#13

Re: Hat jemand schon eine Dateisuche für Multicore geschrieb

  Alt 30. Okt 2007, 19:22
Zitat von Dezipaitor:
Vor jeder Suche wird das Suchergebniss gelöscht, indem krz nach etwas anderem gesucht wird.
klappt nicht so ganz Windows is ins solchen Dingen nicht wirklich optimiert, das zeigt doch schon die zu hohe CPU-Auslastung.

außerdem werden Dateien und vorallem das das Dateisystem im RAM zwischengespeichert - siehe (System)FileCache
und speziell das Cachen des Dateisystems (Ordnerinhalte) kann nicht groß beeinflußt werden.

Zitat:
Das Ergebnis ist wohl eindeutig
wie eindeutig?
ich schau mir die Zeit an und was seh ich?
SingelCore ist schneller.

Zitat:
obwohl ich mir nicht erklären kann
das könnte vielleicht an der FileCache liegen.


PS: ein guter weg die FileCache zu leeren ist das System kurz in den Hibernate zu fahren, denn die Cache wird geflusht und/also nicht gespeichert und ist danach schon fast leer (bis auf das was nach dem Hochfahren wieder reingeladen wurde).

ist och die einzige Möglichkeit ohne direkt in das FileCacheManagement einzugreifen (was eh kaum Möglich ist)

also soviele Prozesse wie möglich beenden (möglichst bis auf das Testprog)
und dann vor jeder Messung kurz aus-ein ... ein/zwei minuten warten, damit sich das System beruhigt und immer etwa gleiche Wartezeiten einhalten
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#14

Re: Hat jemand schon eine Dateisuche für Multicore geschrieb

  Alt 31. Okt 2007, 07:38
Zitat von himitsu:
Zitat von Dezipaitor:
Vor jeder Suche wird das Suchergebniss gelöscht, indem krz nach etwas anderem gesucht wird.
klappt nicht so ganz Windows is ins solchen Dingen nicht wirklich optimiert, das zeigt doch schon die zu hohe CPU-Auslastung.
Das war doch das Ziel! Die hohe CPU Auslastung verriet mir, dass kein Index der Dateien vorlag. Zudem war die Plattenaktivität dadurch hoch.

Zitat von himitsu:
außerdem werden Dateien und vorallem das das Dateisystem im RAM zwischengespeichert - siehe (System)FileCache
und speziell das Cachen des Dateisystems (Ordnerinhalte) kann nicht groß beeinflußt werden.
Die getestete Platte ist eine SATA im Wechselrahmen und daher für schnelles Herausziehen optimiert.
Abgesehen von diesem Fakt, habe ich die Tests doppelt durchlaufen und beide Male immer sehr ähnliche Ergebnisse erzielt.

Zitat von himitsu:
Zitat von Dezipaitor:
Vor jeder Suche wird das Suchergebniss gelöscht, indem krz nach etwas anderem gesucht wird.
klappt nicht so ganz Windows is ins solchen Dingen nicht wirklich optimiert, das zeigt doch schon die zu hohe CPU-Auslastung.

Zitat von himitsu:
Zitat:
Das Ergebnis ist wohl eindeutig
wie eindeutig?
ich schau mir die Zeit an und was seh ich?
SingelCore ist schneller.
Natürlich eindeutig auf den Sieg für SingleCore. Ich habe ja nicht geschrieben, dass die Ergebnisse gleich sind.

Zitat von himitsu:
Zitat:
obwohl ich mir nicht erklären kann
das könnte vielleicht an der FileCache liegen.
Bitte reiss meine Sätze nicht auseinander und zitiere sie dann. Wenn das Original nicht drüber stehen würde, würde man nicht erfahren, dass ich mir nicht erklären kann warum 2 Kerne länger brauchen als 4 Kerne.
Vielleicht muss man hunderte von Testdurchläufen machen, um genauerere und aussagekrätigere Ergebnisse zu machen. Aber das mache ich nicht für eine solche kleine Sache.




PS: ein guter weg die FileCache zu leeren ist das System kurz in den Hibernate zu fahren, denn die Cache wird geflusht und/also nicht gespeichert und ist danach schon fast leer (bis auf das was nach dem Hochfahren wieder reingeladen wurde).

ist och die einzige Möglichkeit ohne direkt in das FileCacheManagement einzugreifen (was eh kaum Möglich ist)

also soviele Prozesse wie möglich beenden (möglichst bis auf das Testprog)
und dann vor jeder Messung kurz aus-ein ... ein/zwei minuten warten, damit sich das System beruhigt und immer etwa gleiche Wartezeiten einhalten
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz