Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di niubbo
    Registrato dal
    Jul 2004
    Messaggi
    692

    Come creo grandi file (15mb) prelevando dati da MYSQL nel minor tempo possibile?

    Ho creato uno script che leggendo da una tabella mi crea un file XML enorme, intorno ai 12Mb, il fatto è che ci impiega veramente troppo tempo e la comunicazione tra browser e server ne risente al punto tale che praticamente si blocca anche se poi, controllando via ftp, il file risulta creato (dopo molto però e la pagina rimane comunque in stato di attesa di risposta dal server).

    C'è un modo per ottimizzare questa situazione? Forse do in pasto a fwrite una stringa troppo grande? Dovrei dividere ed aprire e chiudere il file più volte? Non lo so... qualcuno sa darmi un idea per ottimizzare?

    Grazie
    Non si può niubbare per sempre...

    P.S. Ma perché i CSS non fanno quello che gli dico di fare.... aaaAAAAAAARGHHHHH!!!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Dipende molto dal flusso delle attività... se puoi permetterti di generare il file senza aspettare la fine dell'operazione l'ideale sarebbe agire in maniera asincrona, lanciando un processo che si occupa di fare ciò che dici restituendo subito il controllo all'utente.

    Per capire meglio la situazione dovresti intanto analizzare il problema (cominciando con test "locali") e suddividere il tempo dello script almeno in:
    - tempo di elaborazione sul db
    - tempo di elaborazione del contenuto
    - tempo di elaborazione sul file system (prova a calcolare il tempo necessario al salvataggio di un file indicato, ma già elaborato, p.es.)
    - tempo di accesso http

    in modo da valutare dove intervenire... probabilmente il tempo "grosso" è il secondo o il terzo: se fosse il secondo si potrebbe lavorare sull'algoritmo utilizzato, fermo restando che i MB indicati non sono comunque pochi.

  3. #3
    Utente di HTML.it L'avatar di niubbo
    Registrato dal
    Jul 2004
    Messaggi
    692
    Le fasi sono queste: upload di un file .zip di 1,2 mb - decompressione del file in un XML di 14mb, parsing del file ed aggiornamento di una tabella (35000 record) e non ci crederai ma fino a qui il tempo è accettabile... quando poi dalla tabella devo ricreare questo super file XML da 12 mb del quale l'utente deve fare l'upload tutto si blocca...
    Non si può niubbare per sempre...

    P.S. Ma perché i CSS non fanno quello che gli dico di fare.... aaaAAAAAAARGHHHHH!!!!!

  4. #4
    ma che libreria usi per ceare il file xml dalla tabella??

  5. #5
    Utente di HTML.it L'avatar di niubbo
    Registrato dal
    Jul 2004
    Messaggi
    692
    Nessuna libreria, file system e basta...che poi è il modo più leggero credo... fwrite($tag_xml) dove $tag_xml la genero prelevando tutti i dati dal db andando poi a generare le tag.
    Non si può niubbare per sempre...

    P.S. Ma perché i CSS non fanno quello che gli dico di fare.... aaaAAAAAAARGHHHHH!!!!!

  6. #6
    Originariamente inviato da niubbo
    Nessuna libreria, file system e basta...che poi è il modo più leggero credo... fwrite($tag_xml) dove $tag_xml la genero prelevando tutti i dati dal db andando poi a generare le tag.
    Il modo più leggero??!?!?!?!
    Prova un po con simpleXML....

    EDIT
    ***************
    http://www.php.net/manual/en/simplex...ples-basic.php
    http://php.net/manual/en/book.simplexml.php

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    sì... prova a vedere il tempo di esecuzione della generazione dell'xml... bisogna capire se è questo che rallenta...

  8. #8
    Utente di HTML.it L'avatar di niubbo
    Registrato dal
    Jul 2004
    Messaggi
    692
    Sono sicuro che è quella la cosa che rallenta... uso simplexml per leggere il file che carico ma non lo uso per generarne uno nuovo... è un oggetto... come può essere più veloce di un comando puro e semplice che scrive dei byte? E poi come si usa simplexml per generare un file? Mi fareste un esempio?

    Grazie
    Non si può niubbare per sempre...

    P.S. Ma perché i CSS non fanno quello che gli dico di fare.... aaaAAAAAAARGHHHHH!!!!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ma l'oggetto come lo generi? non puoi usare i metodi della libreria per modificare l'xml? insomma avere un oggetto che sia già un "oggetto XML" senza doverlo creare come stringa testuale (per salvarlo poi ci sono vari modi, inclusa la serializzazione).

  10. #10
    mica per altro, ma un oggetto è salvato in memoria mentre fwrite & co scrivono direttamente nel filesystem, quindi è decisamente più veloce un oggetto (persisti sul filesystem solo una volta)
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.