[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [udig-devel] Efficiency problem with filtered Feature Collections
|
Hi again,
we have studying the matter. Here we show the results.
(we hope this not bore you :) ... )
[OPTION 1("Without AddAll")]
//Query
q = new DefaultQuery(pointsSource.getSchema().getTypeName(),
dWithinFilter, new String[]{
pointsSource.getSchema().getDefaultGeometry().getName(),
"ATRIB"});
pointFeatCollAux = pointsSource.getFeatures(q);
//Filter
pointFeatCollAux = pointsSource.getFeatures(dWithinFilter);
//FeatureCollection Visitors...
pointFeatCollAux.accepts(averageVisitor, null);
average = ((Double) averageVisitor.getAverage()).doubleValue();
pointFeatCollAux.accepts(countVisitor, null);
pointFeatCollAux.accepts(minVisitor, null);
pointFeatCollAux.accepts(maxVisitor, null);
pointFeatCollAux.accepts(medianVisitor, null);
pointFeatCollAux.accepts(sumVisitor, null);
desvVisitor = new StandardDeviationVisitor(pointAttrib, media);
pointFeatCollAux.accepts(desvVisitor, null);
======= Poly geom #1
======= Starting Query!
.... doing average 9812.0ms
.... doing count 9328.0ms
.... doing min 9391.0ms
.... doing max 9859.0ms
.... doing median 9594.0ms
.... doing sum 9672.0ms
.... doing desviation 9516.0ms
Count: 3592
[Min, Max]: [4342, 30771]
Average: 22036.477171492206
Median: 27804.0
Sum: 79155026
Desviation: 8043.5832852906815
Query Time: 67187.0ms
Number of Features: 3592
======= Starting Filter!
.... doing average 9500.0ms
.... doing count 9672.0ms
.... doing min 9578.0ms
.... doing max 9578.0ms
.... doing median 9687.0ms
.... doing sum 9610.0ms
.... doing desviation 9562.0ms
Count: 7184
[Min, Max]: [4342, 30771]
Average: 22036.477171492206
Median: 27804.0
Sum: 158310052
Desviation: 8043.5832852906815
Filter Time: 67187.0ms
Number of Features: 3592
=====================
======= Poly geom #2
======= Starting Query!
.... doing average 14922.0ms
.... doing count 14937.0ms
.... doing min 14860.0ms
.... doing max 14843.0ms
.... doing median 14922.0ms
.... doing sum 14906.0ms
.... doing desviation 14750.0ms
Count: 14638
[Min, Max]: [1517, 37134]
Average: 17940.582251673724
Median: 16151.0
Sum: 262614243
Desviation: 13578.054140641521
Query Time: 104140.0ms
Number of Features: 7454
======= Starting Filter!
.... doing average 14734.0ms
.... doing count 14704.0ms
.... doing min 14718.0ms
.... doing max 14469.0ms
.... doing median 14578.0ms
.... doing sum 14844.0ms
.... doing desviation 14641.0ms
Count: 22092
[Min, Max]: [1517, 37134]
Average: 16608.656255658156
Median: 15242.5
Sum: 366918434
Desviation: 13252.242758512577
Filter Time: 102703.0ms
Number of Features: 7454
=====================
..........
..........
..........
..........
[OPTION 2("With AddAll")]
// Query
q = new DefaultQuery(pointsSource.getSchema().getTypeName(),
dWithinFilter, new String[]{
pointsSource.getSchema().getDefaultGeometry().getName(),
cBoxFields.getText()});
pointFeatCollAux = FeatureCollections.newCollection();
pointFeatCollAux.addAll(pointsSource.getFeatures(q));
//Filter
pointFeatCollAux = FeatureCollections.newCollection();
pointFeatCollAux.addAll(pointsSource.getFeatures(dWithinFilter));
//FeatureCollection Visitors...
pointFeatCollAux.accepts(averageVisitor, null);
average = ((Double) averageVisitor.getAverage()).doubleValue();
pointFeatCollAux.accepts(countVisitor, null);
pointFeatCollAux.accepts(minVisitor, null);
pointFeatCollAux.accepts(maxVisitor, null);
pointFeatCollAux.accepts(medianVisitor, null);
pointFeatCollAux.accepts(sumVisitor, null);
desvVisitor = new StandardDeviationVisitor(pointAttrib, media);
pointFeatCollAux.accepts(desvVisitor, null);
======= Poly geom #1
======= Starting Query!
.... doing average 0.0ms
.... doing count 0.0ms
.... doing min 0.0ms
.... doing max 0.0ms
.... doing median 16.0ms
.... doing sum 0.0ms
.... doing desviation 15.0ms
Count: 3592
[Min, Max]: [4342, 30771]
Average: 22036.477171492206
Median: 27804.0
Sum: 79155026
Desviation: 8043.583285290676
Query Time: 9515.0ms
Number of Features: 3592
======= Starting Filter!
.... doing average 0.0ms
.... doing count 0.0ms
.... doing min 16.0ms
.... doing max 0.0ms
.... doing median 0.0ms
.... doing sum 0.0ms
.... doing desviation 0.0ms
Count: 7184
[Min, Max]: [4342, 30771]
Average: 22036.477171492206
Median: 27804.0
Sum: 158310052
Desviation: 8043.583285290676
Filter Time: 9532.0ms
Number of Features: 3592
=====================
======= Poly geom #2
======= Starting Query!
.... doing average 0.0ms
.... doing count 0.0ms
.... doing min 0.0ms
.... doing max 0.0ms
.... doing median 0.0ms
.... doing sum 0.0ms
.... doing desviation 15.0ms
Count: 14638
[Min, Max]: [1517, 37134]
Average: 17940.582251673724
Median: 16151.0
Sum: 262614243
Desviation: 13578.05414064152
Query Time: 14343.0ms
Number of Features: 7454
======= Starting Filter!
.... doing average 0.0ms
.... doing count 0.0ms
.... doing min 0.0ms
.... doing max 0.0ms
.... doing median 0.0ms
.... doing sum 0.0ms
.... doing desviation 15.0ms
Count: 22092
[Min, Max]: [1517, 37134]
Average: 16608.656255658156
Median: 15242.5
Sum: 366918434
Desviation: 13252.242758512582
Filter Time: 14328.0ms
Number of Features: 7454
=====================
..........
..........
..........
..........
In conclussion, there aren't difference between Query or Filter implementation
but we can see that using "clone" Feature Collections (addAll method) we save
near (67187-9532)ms in poly#1 and (102703-14328)ms in poly#2.
Does it have any sense?? :S
Thanks!
Antonio Redondo Lora
Subdirección de Integración de Sistemas
E.P. Desarrollo Agrario y Pesquero
c/Bergantín, 39 - 41012 Sevilla. España
Email: becarlora@xxxxxx
Tlfno: 955059762
Corporativo: 359762
-----------------------------------------------------
Este correo electrónico y, en su caso, cualquier fichero anexo
al mismo, contiene información de carácter confidencial
exclusivamente dirigida a su destinatario o destinatarios. Queda
prohibida su divulgación, copia o distribución a terceros sin la
previa autorización escrita de Dap. En el caso de haber
recibido este correo electrónico por error, se ruega notifíquese
inmediatamente esta circunstancia mediante reenvío a la dirección
electrónica del remitente.
----------------------------------------------------------
The information in this e-mail and in any attachments is confidential
and solely for the attention and use of the named addressee(s).
You are hereby notified that any dissemination, distribution or copy
of this communication is prohibited without the prior written consent
of Dap. If you have received this communication in error,
please, notify the sender by reply e-mail.
-------------------------------------------------------------