lentezza di compilazione solo da utente

  • Creatore
    Topic
  • #15326
    Up
    0
    Down
    ::


    ho un problema strano: ho installato su ubuntu texlive; funziona tutto a dovere a parte la compilazione in modalità utente. lo stesso file da superuser viene compilato in 1 seconod circa mentre utilizzando il normale utente è almeno 30 volte + lento.

    Ho effettuato le seguenti prove:
    -eliminare eventuali set di caratteri inutili
    -cancellare del tutto la home per partire con un sistema pulito
    -commentare alcune parti del preambolo critiche
    ma nulla sembra avere effetto

    ho pensato a problemi nella generazione di qualche sorta di cache ma non riesco a capire bene dove e cose… qualche suggerimento?

Visualizzazione 11 filoni di risposte
  • Autore
    Risposte
    • #15327
      Up
      0
      Down
      ::

      ho un problema strano: ho installato su ubuntu texlive; funziona tutto a dovere a parte la compilazione in modalità utente. lo stesso file da superuser viene compilato in 1 seconod circa mentre utilizzando il normale utente è almeno 30 volte + lento.

      Ho effettuato le seguenti prove:
      -eliminare eventuali set di caratteri inutili
      -cancellare del tutto la home per partire con un sistema pulito
      -commentare alcune parti del preambolo critiche
      ma nulla sembra avere effetto

      ho pensato a problemi nella generazione di qualche sorta di cache ma non riesco a capire bene dove e cose… qualche suggerimento?

      Problemi di permessi? Prova a riportare la risposta al seguente comando dalla shell
      `kpsexpand '$TEXINPUTS'`
      Altra domanda: per caso hai messaggi sullo schermo che parlano di generazione di font?

      Ciao
      Enrico

    • #15328
      Up
      0
      Down
      ::


      grazie per la pronta risposta:

      `antonio@Voyager:~$ kpsexpand '$TEXINPUTS'
      .:{/home/antonio//.texmf-config,/home/antonio//.texmf-var,
      /home/antonio//texmf,/etc/texmf,
      !!/var/lib/texmf,!!/usr/local/share/texmf,!!/usr/share/texmf,
      !!/usr/share/texmf-{texlive,tetex}}/tex/{kpsewhich,generic,}//
      `

      per i font non mi sembra, il punto in cui noto una particolare lentezza è qui:

      `antonio@Voyager:/home/antonio/Progetti/cUml2Svg/cuml2svg/doc/relazione$ pdflatex index.tex
      This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6)
      %&-line parsing enabled.
      entering extended mode
      (./index.tex
      LaTeX2e <2005/12/01>
      Babel and hyphenation patterns for english, usenglishmax, dumylang, noh
      yphenation, italian, italian, loaded.
      (/usr/share/texmf-texlive/tex/latex/base/book.cls
      Document Class: book 2005/09/16 v1.4f Standard LaTeX document class
      (/usr/share/texmf-texlive/tex/latex/base/bk12.clo))
      `

    • #15329
      Up
      0
      Down
      ::

      grazie per la pronta risposta:

      `antonio@Voyager:~$ kpsexpand '$TEXINPUTS'
      .:{/home/antonio//.texmf-config,/home/antonio//.texmf-var,
      /home/antonio//texmf,/etc/texmf,
      !!/var/lib/texmf,!!/usr/local/share/texmf,!!/usr/share/texmf,
      !!/usr/share/texmf-{texlive,tetex}}/tex/{kpsewhich,generic,}//
      `

      per i font non mi sembra, il punto in cui noto una particolare lentezza è qui:

      `antonio@Voyager:/home/antonio/Progetti/cUml2Svg/cuml2svg/doc/relazione$ pdflatex index.tex
      This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6)
      %&-line parsing enabled.
      entering extended mode
      (./index.tex
      LaTeX2e <2005/12/01>
      Babel and hyphenation patterns for english, usenglishmax, dumylang, noh
      yphenation, italian, italian, loaded.
      (/usr/share/texmf-texlive/tex/latex/base/book.cls
      Document Class: book 2005/09/16 v1.4f Standard LaTeX document class
      (/usr/share/texmf-texlive/tex/latex/base/bk12.clo))`

      Prova a dare
      `kpsexpand '$VARTEXFONTS'
      kpsexpand '$TEXMFVAR'`
      Poi dà un’occhiata ai vari ls-R:
      `ls -l /var/lib/texmf/ls-R`
      e anche per tutti gli altri percorsi che ottieni da “kpsexpand ‘$TEXINPUTS.pdflatex’” e che sono preceduti da “!!”. Dove ci sono graffe devi espandere: xxx/{aaa,bbb} si riferisce tanto a xxx/aaa che a xxx/bbb

      Dovrebbero essere tutti disponibili in lettura.

      Ciao
      Enrico

    • #15330
      Up
      0
      Down
      ::


      `kpsexpand '$VARTEXFONTS'
      /tmp/texfonts`

      da root
      `$ kpsexpand '$TEXMFVAR'
      /root/.texmf-var`

      da user
      `$ kpsexpand '$TEXMFVAR'
      /home/antonio//.texmf-var`

      e sembrano tutti disponibili in lettura…

    • #15331
      Up
      0
      Down
      ::

      `kpsexpand '$VARTEXFONTS'
      /tmp/texfonts`

      da root
      `$ kpsexpand '$TEXMFVAR'
      /root/.texmf-var`

      da user
      `$ kpsexpand '$TEXMFVAR'
      /home/antonio//.texmf-var`

      e sembrano tutti disponibili in lettura…

      Ma /tmp/texfonts è disponibile in scrittura?

      Ciao
      Enrico

    • #15332
      Up
      0
      Down
      ::


      ho fatto un’altra prova che dovrebbe restringere di molto il campo… ho creato un nuovo utente generico e provato a ricompilare lo stesso file: tempi di compilazione molto bassi!

      viene memorizzata qualche impostazione riguardo gli utenti in file non nella cartella home?

    • #15333
      Up
      0
      Down
      ::

      ho fatto un’altra prova che dovrebbe restringere di molto il campo… ho creato un nuovo utente generico e provato a ricompilare lo stesso file: tempi di compilazione molto bassi!

      viene memorizzata qualche impostazione riguardo gli utenti in file non nella cartella home?

      Direi di no. Prova a rinominare .texmf-var nella tua home e vedere che succede.

      Ciao
      Enrico

    • #15334
      Up
      0
      Down
      ::


      ho tentato una nuova via… provando un comando del genere:

      `watch -d lsof -c pdflatex > file
      vim file`

      ho notato che effettua una scansione di tutta la mia home directory; a questo punto è un opzione generale che però non degrada le performance con gli altri utenti visto che le rispettivi cartelle utente sono semivuote!

      sono veramente poco esperto del mondo latex e non reisco a immaginarmi da cosa possa essere causato… non esiste un reset delle impostazioni? (anche se una rimozione completa + reinstallazione) non era servita.

      grazie per la pazienza

    • #15335
      Up
      0
      Down
      ::


      ho finalmente risolto il problema; probabilmente può essere considerato un bug:

      la mia variabile d’ambiente $HOME era impostata a /home/antonio/; il tutto funziona con $HOME=/home/antonio

      il problema sta proprio in quella barra in più che fa diventare i percorsi utente una cosa del genere:

      /home/antonio//.tex-config
      /home/antonio//texmf
      etc.

      il parsing di questi percorsi viene inteso come:
      /home/antonio
      e provoca quindi l’inizio di una scansione di tutta la cartella home. Spero che a qualcuno possa servire: grazie dell’aiuto!

    • #15336
      Up
      0
      Down
      ::

      ho finalmente risolto il problema; probabilmente può essere considerato un bug:

      la mia variabile d’ambiente $HOME era impostata a /home/antonio/; il tutto funziona con $HOME=/home/antonio

      il problema sta proprio in quella barra in più che fa diventare i percorsi utente una cosa del genere:

      /home/antonio//.tex-config
      /home/antonio//texmf
      etc.

      il parsing di questi percorsi viene inteso come:
      /home/antonio
      e provoca quindi l’inizio di una scansione di tutta la cartella home. Spero che a qualcuno possa servire: grazie dell’aiuto!

      Chi la dura la vince! 🙂

      Però è un bug del tuo .bashrc, non delle librerie di ricerca di TeX. Credo che la scelta di usare “//” per indicare la ricorsione nelle directory non sia casuale: Karl Berry, che ha sviluppato la libreria kpathsea, è l’attuale presidente del TeX Users Group.

      Ciao
      Enrico

    • #15337
      Up
      0
      Down
      ::

      Però è un bug del tuo .bashrc, non delle librerie di ricerca di TeX. Credo che la scelta di usare “//” per indicare la ricorsione nelle directory non sia casuale: Karl Berry, che ha sviluppato la libreria kpathsea, è l’attuale presidente del TeX Users Group.

      non sapevo volesse dire “ricorsione”: ho imparato una cosa nuova! Se mi dici ciò allora confermo che il bug sono io (che avevo cambiato il path per altri motivi)!

    • #15338
      Up
      0
      Down
      ::

      Però è un bug del tuo .bashrc, non delle librerie di ricerca di TeX. Credo che la scelta di usare “//” per indicare la ricorsione nelle directory non sia casuale: Karl Berry, che ha sviluppato la libreria kpathsea, è l’attuale presidente del TeX Users Group.

      non sapevo volesse dire “ricorsione”: ho imparato una cosa nuova! Se mi dici ciò allora confermo che il bug sono io (che avevo cambiato il path per altri motivi)!

      Un problema antico dei programmi TeX era quello dei percorsi: c’è bisogno che questi programmi sappiano dove cercare fogli di stile, file di definizioni, file metrici dei font, immagini bitmap dei font e così via. Parecchi anni fa Karl Berry ebbe l’idea di una libreria unica su cui tutti i programmi possono appoggiarsi per queste ricerche. Poiché i file in gioco sono moltissimi e possono anche avere lo stesso nome pur con contenuti diversi (per esempio le immagini bitmap nei sistemi dove l’estensione è limitata a tre caratteri si chiamano tutte .pk e vengono distinti tramite la directory dove vivono, che ha come nome la risoluzione richiesta) è necessario organizzare una struttura ad albero. Ma specificare il percorso di ricerca completo è difficilmente mantenibile: ogni volta che si aggiunge una directory occorrerebbe modificare l’elenco dei percorsi; ci sarebbero anche ovvi problemi di memoria e di lunghezza di stringhe.

      Quindi la ricerca avviene in modo ricorsivo: se stai usando il programma latex, il percorso di ricerca dei file di stile è, per esempio e semplificando, /tex/latex//, dove è, per la distribuzione TeX Live, /usr/local/texlive/2007/texmf-dist. La doppia barra finale indica che si va da lì in giù, ricorsivamente su tutte le sottodirectory. Per limitare l’accesso al disco, c’è un meccanismo di cache che qui è irrilevante (sono i file ls-R che vengono prodotti con lo script mktexlsr).

      L’appoggiarsi a una libreria unica rende superfluo definire per ogni utente una miriade di variabili d’ambiente, come invece era necessario prima. Ma le variabili d’ambiente sono implicite nella libreria e l’utente può usarle.

      Supponi che esca una versione beta di pgf, che è un insieme piuttosto vasto di macro per la grafica; i file di pgf sono organizzati in un albero, per vari motivi. Ottieni il tarball, pgf-beta.tar che spacchetti nella tua home, dentro la directory pgf-beta. Adesso vuoi insegnare a LaTeX che usi questa versione di pgf e non quella della distribuzione:
      `export TEXINPUTS=~/pgf-beta//:`
      è il modo di farlo; la variabile implicita TEXINPUTS contiene il percorso dove cercare i pacchetti. Se viene assegnata esplicitamente in questo modo, indica a LaTeX di cercare ricorsivamente da ~/pgf-beta e, in seguito, secondo il percorso della variabile implicita. È, in effetti, come scrivere
      `export TEXINPUTS=~/pgf-beta//:${TEXINPUTS}`
      pensando che la variabile sia già definita nell’ambiente (non lo è, però, quindi si deve usare il metodo descritto).

      La documentazione di kpathsea è molto interessante per chi debba fare cose simili con altri programmi.

      Ciao
      Enrico

Visualizzazione 11 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top