Sehr Community,
wie so oft stehe ich am Rande meiner Programmierkenntnisse und erhoffe mir Tipps von euch.
Kern des Problems ist ein C#-programm, was 2 dateien einliest um mit diesen eine möglichst große 2-dimensionale matrix zu erzeugen. mithilfe von LINQ soll diese matrix abgefragt werden.
ich befasse mich mit linq und plinq...die mögliche parallelisierung des programmes geschieht durch anhängen von "Asparallel()" an die zeile " var query = from Person person in Personenliste.AsParallel()"...lasse ich das AsParallel()" weg, so ist das Programm aber irgendwie schneller mit der abfrage fertig..
ich verstehe das nicht und hätte gern ein erklärung hierfür...evtl sind ja auch einfach meine stopuhren falsch eingesetzt??!?!
mfg jerome gehrmann
wie so oft stehe ich am Rande meiner Programmierkenntnisse und erhoffe mir Tipps von euch.
Kern des Problems ist ein C#-programm, was 2 dateien einliest um mit diesen eine möglichst große 2-dimensionale matrix zu erzeugen. mithilfe von LINQ soll diese matrix abgefragt werden.
ich befasse mich mit linq und plinq...die mögliche parallelisierung des programmes geschieht durch anhängen von "Asparallel()" an die zeile " var query = from Person person in Personenliste.AsParallel()"...lasse ich das AsParallel()" weg, so ist das Programm aber irgendwie schneller mit der abfrage fertig..
ich verstehe das nicht und hätte gern ein erklärung hierfür...evtl sind ja auch einfach meine stopuhren falsch eingesetzt??!?!
Code:
ArrayList namenliste = new ArrayList();
ArrayList Alterliste = new ArrayList();
ArrayList Stadtliste = new ArrayList();
ArrayList Personenliste = new ArrayList();
Stopwatch stopwatch = new Stopwatch();
Stopwatch stopwatchdateienlesen = new Stopwatch();
Stopwatch stopwatchpersonen = new Stopwatch();
StreamReader frauennamen = new StreamReader(@"c:\Frauennamen.txt");
string eingelesenezeile = "";
int i = 0;
stopwatchdateienlesen.Start();
while (eingelesenezeile != null)
{
eingelesenezeile = Convert.ToString(frauennamen.ReadLine());
namenliste.Add(eingelesenezeile); i++;
}
namenliste.RemoveAt(i - 1);
eingelesenezeile = "";
StreamReader Städte = new StreamReader(@"c:\Städte.txt");
int k = 0;
while (eingelesenezeile != null)
{
eingelesenezeile = Convert.ToString(Städte.ReadLine());
Stadtliste.Add(eingelesenezeile); k++;
}
Stadtliste.RemoveAt(k - 1);
stopwatchdateienlesen.Stop();
stopwatchpersonen.Start();
for (int a = 0; a < i-1; a++)
{
for (int b = 0; b < k - 1; b++)
{
Personenliste.Add(new Person { Name = Convert.ToString(namenliste[a]), Städtchen = Convert.ToString(Stadtliste[b]), Geschlecht = false });
stopwatchpersonen.Stop();
}}
stopwatch.Start();
var query = from Person person in Personenliste.AsParallel()
where person.Städtchen.Contains("c") & person.Name.Length > 6 & person.Städtchen.Contains("a")
orderby person.Name.Length
select person;
stopwatch.Stop();
label2.Text = Convert.ToString(stopwatch.ElapsedTicks);
label7.Text = Convert.ToString(stopwatchdateienlesen.ElapsedTicks);
label6.Text = Convert.ToString(stopwatchpersonen.ElapsedTicks);
}
}
}
mfg jerome gehrmann