[Gfoss] tiles vs no-tiles

Simone Giannecchini simone.giannecchini a geo-solutions.it
Mer 9 Set 2009 22:21:48 CEST


Ciao Francesco,
innanzitutto una precisazione: quando si parla di interfacce grafiche
quello che conta è la responsiveness non la velocita' assoluta'.
Far partire un rendering aspettare X secondi e poi vedere il risultato
è una esperienza molto meno piacevole per un utente rispetto a
spezzettare la richiesta in N tile se vedere il primo dopo Y secondi
(Y<X). Naturalmente spezzettare molto le richieste comporta un carico
eccessivo sul motore di rendering ma puo' rendere la visualizzazione
piu' piacevole soprattutto se la banda è poca. Cmq sia introdurre il
tiling non fa che aumentare il tempo complessivo di risposta.

A parte le considerazioni teoriche, nota che OpenLayers, se non vado
errato fa partire un massimo di richieste per volta quindi non è che
se devi caricare 100 tile fai partire 100 richieste al server. Il modo
per velocizzare questo tipo di richieste c'e' ed ha vari nomi, io te
ne do uno, GeoWebCache, ossia una cache geospaziale specifica che
cachi i tile cosi' come sono richiesti dal client e generati dal
server. Se il tuo obiettivo è usare openalyers, usare una cache dei
tile è il mezzo piu' veloce per aumentare le prestazioni.


Simone.
-------------------------------------------------------
Ing. Simone Giannecchini
GeoSolutions S.A.S.
Founder - Software Engineer
Via Carignoni 51
55041  Camaiore (LU)
Italy

phone: +39 0584983027
fax:      +39 0584983027
mob:    +39 333 8128928


http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://simboss.blogspot.com/
http://www.linkedin.com/in/simonegiannecchini

-------------------------------------------------------



2009/9/9  <francesco a alveo.coop>:
> salve lista,
> sto facendo delle prove con mapserver + openlayers e ho notato che se in
> openlayers faccio una chiamata ad un layer di mapserver con l'opzione
> "singleTile:true", il comportamento di mapserver e' molto migliore rispetto
> alla stessa chiamata con l'opzione "singleTile:false": in termini di tempo 1
> a 10.
>
> a livello server, se il layer e' diviso in tiles, ad ogni chiamata del
> client viene generato sul server un processo in parallelo per ogni tile.
> il che significa mediamente una ventina di processi in contemporanea che
> affogano il server (sto provando sia in ambiente linux che windows).
>
> per fare un esempio, se l'immagine intera ci mettesse 10 secondi ad essere
> generata, mi aspetterei che la ventina di immagini tilate ci mettano che so,
> non dico mezzo secondo l'una ma giu' di li, 1 o 2  secondi (sono molto più
> piccole), invece ce ne mettono 15 l'una (cioè più dell'immagine intera
> unica), con un incremento dei tempi di generazione dell'intera mappa
> assolutamente non competitivi rispetto al metodo no-tiles. mi aspetterei
> quindi che a generare tutti i tiles ci metta il doppio che il tile unico,
> invece ci mette molto molto di più.
>
> siccome non vorrei rinunciare alla funzionalità di tiling della mappa, che
> credo renda la navigazione molto fluida, mi chiedevo se non ci fosse la
> possibilità di "serializzare" i processi mapserver in modo da generare un
> tile alla volta e non affogare il server.
>
> non saprei se questa possa essere una opzione lato client (ajax sincrono o
> simili) o una opzione lato server.
> ho cercato un po' in rete ma non ho trovato nulla al riguardo.
>
> qualcuno saprebbe darmi un parere sulla questione ?
>
> grazie,
> francesco
> _______________________________________________
> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
> Gfoss a faunalia.it
> http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non rispecchiano necessariamente
> le posizioni dell'Associazione GFOSS.it.
>


Maggiori informazioni sulla lista Gfoss