Back to top

Autore Topic: Problema velocità con joomfish  (Letto 2440 volte)

Offline _Ardito87_

  • Esploratore
  • **
  • Post: 66
    • Mostra profilo
Problema velocità con joomfish
« il: 05 Lug 2013, 14:41:18 »
Buongiorno,
ho notato dei problemi di velocità e di memoria usando joomFish. Ho un sito abbastanza grande con 5 lingue.


Ho notato questo attivando la modalità debug:
Codice: [Seleziona]
.....
Application 0.927 seconds (+0.004); 25.88 MB (+0.010) - afterRenderModule mod_menu (MenuAddons
Application 0.927 seconds (+0.000); 25.87 MB (-0.008) - beforeRenderModule mod_jflanguageselection (Language)
Application 0.961 seconds (+0.034); 26.03 MB (+0.161) - lang mod start
Application 3.572 seconds (+2.611); 63.32 MB (+37.284) - lang mod end
Application 3.572 seconds (+0.000); 63.26 MB (-0.055) - afterRenderModule mod_jflanguageselection (Language)
Application 3.573 seconds (+0.000); 63.25 MB (-0.008) - beforeRenderModule mod_custom (Fuerteventura)
Application 3.574 seconds (+0.001); 63.26 MB (+0.004) - afterRenderModule mod_custom (Fuerteventura)
Application 3.574 seconds (+0.000); 63.26 MB (-0.001) - beforeRenderModule mod_bt_login (Login)
Application 3.589 seconds (+0.015); 63.64 MB (+0.382) - beforeRenderModule mod_k2_login ()
Application 3.589 seconds (+0.000); 63.64 MB (+0.002) - afterRenderModule mod_k2_login ()
Application 3.596 seconds (+0.007); 63.65 MB (+0.013) - afterRenderModule mod_bt_login (Login)
Application 3.653 seconds (+0.056); 63.78 MB (+0.126) - afterRender

Qualcuno sa come mai accade questo e se c'è qualche modo per migliorare le prestazioni? Anche perchè ho fissato il limite della memoria a 94Mb, ma essendo a metà traduzioni non penso mi basti.

Offline _Ardito87_

  • Esploratore
  • **
  • Post: 66
    • Mostra profilo
Re:Problema velocità con joomfish
« Risposta #1 il: 06 Lug 2013, 11:45:06 »
Forse ho capito la problematica.
Quando Joomla carica il modulo di JoomFish pubblicato in una determinata posizione oltre a caricare le varie bandierine fa molto altro:
Esegue  queste query:
Codice: [Seleziona]
SELECT tab.*, tmap.reference_id, tmap.translation_id
  FROM ff1xp_modules as tab
  LEFT JOIN ff1xp_jf_translationmap AS tmap
  ON tmap.reference_table = 'modules'   
  AND tmap.translation_id = tab.id
  AND tmap.language= 'fr-FR'
  WHERE tmap.reference_id IN(2,3,4,8,9,10,12,13,14,15,86,88,110,111,117,118,121,127,128,129,130,131,132,133,134,135,136,137,138,140,145,146,149,153,164,165,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,192,194,196,203,205,207,209,213,214,217,218,220,221,222,223,224,225,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,251,252,253,254,256,257,258,259,260,264,265,266,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315)
  AND tmap.reference_id IS NOT NULL
SELECT m.id, m.menutype, m.title, m.alias, m.note, m.path AS route, m.link, m.type, m.level, m.language,m.browserNav, m.access, m.params, m.home, m.img, m.template_style_id, m.component_id, m.parent_id,e.element as component
  FROM ff1xp_menu AS m
  LEFT JOIN ff1xp_extensions AS e
  ON m.component_id = e.extension_id
  WHERE m.published = 1
  AND m.parent_id > 0
  AND m.client_id = 0
  ORDER BY m.lft
Queste query vengono eseguite per ogni lingua (Nel mio caso 5 volte) e questo ogni volta che carica il modulo JoomFish quindi a ogni caricamento della pagina. Ma questo non è del tutto inutile? Se io visualizzo il sito in inglese cosa serve caricare e creare le istanze del francese,italiano,tedesco e spagnolo?
Disabilitando la riga 88 del file mod_jflanguageselection.php evito che si effettuino tali query e di conseguenza le relative istanze (la memoria usata rimane a 30Mb e non più 64Mb). Ovviamente ho il problema che non avendo più le bandierine non posso selezionarle per cambiare lingua.
Non si potrebbe evitare di eseguire quella riga nel caso in cui Joomla stia caricando il modulo joomFish ma di farla eseguire soltanto se clicco su una bandierina per il cambio lingua? Non sarebbe anche più giusto?


Non so se mi sono spiegato ma spero che qualcuno abbia compreso la problematica
x Moderatori: Forse avrei dovuto postare nella sezione Sviluppo ?!  :(







Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Problema velocità con joomfish
« Risposta #2 il: 06 Lug 2013, 18:25:24 »
Scusa ma perchè se sei con la 2.5 non utilizzi il mulrilingua nayivo? Sembra che joomfish non giri ancora bene nella versione 2.5

 La sezione giusta è gestione multilingua, ti sposto.

Offline _Ardito87_

  • Esploratore
  • **
  • Post: 66
    • Mostra profilo
Re:Problema velocità con joomfish
« Risposta #3 il: 06 Lug 2013, 19:28:38 »
Si sono con la 2.5.9 ma non ho utilizzato il multilingua nativo perchè a quanto sapevo e so non permette il multilingua dei moduli. Mi sbaglio?

Ho bisogno di tradurre vari componenti tra cui gli articoli di k2.

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Problema velocità con joomfish
« Risposta #4 il: 06 Lug 2013, 19:47:01 »
No per i moduli li traduci lo stesso come fai con joomfish, diverso il discorso dei componenti che dipende dagli stessi e non cambia la situazione nemmeno con joomfish.

Offline _Ardito87_

  • Esploratore
  • **
  • Post: 66
    • Mostra profilo
Re:Problema velocità con joomfish
« Risposta #5 il: 08 Lug 2013, 12:19:18 »
Diciamo che sono riuscito a risolvere con joomFish e quindi avendo già effettuato molte traduzioni non ho cambiato strada e non ho provato il multilanguage nativo di Joomla. ;)

Il problema è nell'istruzione riga 129 del file "\libraries\joomfish\route\jfroute.php" (
Codice: [Seleziona]
$menu->__construct(); )

Sostanzialmente ricarica tutti i menu per ogni lingua. Questo comporta un enorme spreco di spazio e di tempo. Commentando questa riga si incappa nel problema che bisogna crearsi una funzione per creare gli indirizzi di destinazione di ogni lingua.
Sostanzialmente se sto visistando index.php/it/articolo1 devo creare una funzione per creare il link in inglese (index.php/en/article1)

Per creare tale funzione ho utilizzato questo:
Codice: [Seleziona]
$item = JFactory::getApplication()->getMenu()->getItem(JSite::getMenu()->getActive()->id;);
$item->tree;

Sostanzialmente in $item->tree si ha un albero in cui ogni nodo è una voce di menu che bisogna tradurre.

 



Web Design Bolzano Kreatif