Compilation très lente

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
mistermazette
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : vendredi 01 mai 2020, 19:12

Compilation très lente

Message par mistermazette »

Bonjour à tous,

Je dispose d'un document TeX (Beamer) d'environ 500 frames et la compilation de ce document est extrêmement lente. Il s'agit d'un gros résumé de tous mes cours de prépa, et j'adore ce format qui me permet de naviguer de thèmes en thèmes.

J'ai essayé les:

Code : Tout sélectionner

\includeonly{monfichier}
pour chaque compilation de mes sous-dossiers. Mais le problème est dans la compilation finale, je suis bien obligé de tout compiler, donc ça remet des plombes ... Auriez-vous des idées pour une compilation optimale ? Pour informations, Je suis sous Ubuntu, installation "normale", trouvé ici :https://doc.ubuntu-fr.org/latex

J'utilise TeXstudio.
En vous remerciant d'avance,
Mistermazette.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2587
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Compilation très lente

Message par gigiair »

TeXStudio n'est pour rien dans le temps d'exécution, il ne fait que transmettre au moteur de compilation.
Quel est-il ?

Je me suis constitué un petit fichier de test de près de 12000 lignes. Tu peux le télécharger pour comparer avec mes tests avec la commande

Code : Tout sélectionner

wget -0 martyr.tex http://ix.io/2kri
le fichier est sauvegardé sous le nom martyr.tex mais ce n'est pas important du tout, on peut changer !

Pour ceux qui seraient inquiets pour leur sécurité, il n'y a qu'une entête

Code : Tout sélectionner

\documentclass[french]{scrartcl}

\usepackage{babel}
\begin{document}
et du bourrage à coup de Lorem Lipsum.

Le test se fait avec une commande comme

Code : Tout sélectionner

time pdflatex martyr
Chez moi, ça compile en moins de 3 secondes (ma machine est un bas de gamme à 200 euros sous Debian)
Faire le même test avec xelatex et lualatex. (+ de 11s chez moi)

Il faut voir si ton fichier fait appel à des applications extérieures, ou pourquoi pas des lectures sur le WEB qui pourraient expliquer un ralentissement exceptionnel.

Si le document comporte de nombreuses figures qui n'ont pas besoin d'être compilées à chaque fois, on doit pouvoir les placer dans des documents standalone, je crois que c'est fait pour ça. mais comme je ne l'ai jamais fait, il faut lire la doc. Je passe la main.
JJR.
LaTeXien migrateur.
mistermazette
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : vendredi 01 mai 2020, 19:12

Re: Compilation très lente

Message par mistermazette »

Bonjour,
Merci pour votre aide !

Je compile avec pdflatex et je dispose des même résultats que vous vis-à-vis de la compilation de ce document :
-> -3 sec Avec pdflatex
-> +10 avec xelatex et lualatex

Mon fichier est un Beamer composé de simple

Code : Tout sélectionner

\begin{frame}{Frame Title} 
Mes formules de maths et de physique
\end{frame} 


Je n'ai pas d'images, juste une très très grosse quantité de frame. La compilation peut durée 10min au pire, comme 1 min dans le meilleur des cas, je ne comprends pas très bien ce qui explique ceci, mon objectif étant d'avoir une compilation de moins de 10sec pour travaille efficacement.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2587
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Compilation très lente

Message par gigiair »

C'est absolument anormal.
J'ai fait un autre fichier de test avec un fichier beamer contenant 1292 frame .
En pdflatex ça a compilé en 55s et en lualatex en 97s.
Le problème doit venir de la machine. Si le temps est aussi variable, ça peut venir de la mémoire vive qui sature et qui prend beaucoup de temps à récupérer son souffle quand le mécanisme se déclenche.

Il faut fermer les applications inutiles ou grosses consommatrices comme firefox qui est une horreur. J'ai dit que TeXStudio n'est absolument pour rien dans le processus de compilation ce que je maintiens. Par contre il peut être pour quelque chose dans l'utilisation abusive des ressources de la machine.

J'ai chargé mon fichier aux 1292 frame dans TeXStudio, Voici ce que me raconte mon gestionnaire de processus
proced.png
On voit que TeXStudio consomme 17% des ressources du processeur et 5% de la mémoire, alors que Firefox ne consomme « seulement » que 13,8% du processeur et 6,4% de la mémoire.
On peut comparer à Emacs resp. 3,4% et 5,2%.
Ces deux applications étant chargées par le même fichier martyr.tex

J'ai scruté les ressources un peu plus tard et TeXStudio n'a pas confirmé sa gourmandise, mais il faudrait tester l'utilisation des ressources en cours de compilation.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
JJR.
LaTeXien migrateur.
mistermazette
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : vendredi 01 mai 2020, 19:12

Re: Compilation très lente

Message par mistermazette »

Merci pour votre aide, j'ai compilé le document suivant pour "tester" :

Code : Tout sélectionner

\begin{frame}
\frametitle{Test frame}
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
\end{frame}
\begin{frame
1700 fois et cela ne m'a pris "que" 1min06 avec pdflatex, avec une utilisation de 24% CPU au maximum de "pdflatex", 1% pour Textstudio.

Ensuite j'ai compilé mon Beamer de cours, et il ne s'est pas passé les mêmes "choses",

-> Pendant 2 minutes la consommation était de 25% pdflatex et 25% textstudio ,
-> A partir de 2 minutes 26% de TextStudio puis 20 secondes après c'est fini.

Soit un total de 2min20 pour "seulement" 500 frames.

J'utilise les packages suivant :

Code : Tout sélectionner

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Les packages pour érire le français %%
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{graphicx}
\usepackage{mathtools}
\usepackage{amsmath,esint}
\usepackage{etoolbox}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{xcolor}
\usepackage{url}
\usepackage{float}
\usepackage{lipsum}
\usepackage{esvect}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{multicol}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{pst-plot}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
%\usepackage{soul}
%\usepackage{color}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{listings}
\lstset{
	literate=%
	{á}{{\'a}}1
	{à}{{\`a}}1
	{í}{{\'i}}1
	{é}{{\'e}}1
	{è}{{\`e}}1
	{ê}{{\^e}}1
	{ý}{{\'y}}1
	{ù}{{\'u}}1
	{ú}{{\'u}}1
	{ó}{{\'o}}1
	{ě}{{\v{e}}}1
	{š}{{\v{s}}}1
	{č}{{\v{c}}}1
	{ř}{{\v{r}}}1
	{ž}{{\v{z}}}1
	{ď}{{\v{d}}}1
	{ť}{{\v{t}}}1
	{ň}{{\v{n}}}1                
	{ů}{{\r{u}}}1
	{Á}{{\'A}}1
	{Í}{{\'I}}1
	{É}{{\'E}}1
	{Ý}{{\'Y}}1
	{Ú}{{\'U}}1
	{Ó}{{\'O}}1
	{Ě}{{\v{E}}}1
	{Š}{{\v{S}}}1
	{Č}{{\v{C}}}1
	{Ř}{{\v{R}}}1
	{Ž}{{\v{Z}}}1
	{Ď}{{\v{D}}}1
	{Ť}{{\v{T}}}1
	{Ň}{{\v{N}}}1                
	{Ů}{{\r{U}}}1   
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\AtBeginSection
{\begin{frame}[allowframebreaks]{Sommaire}
	\tableofcontents[currentsection,hideothersubsections]
\end{frame}}

\makeatletter
\patchcmd{\slideentry}{\advance\beamer@xpos by1\relax}{}{}{}
\def\beamer@subsectionentry#1#2#3#4#5{\advance\beamer@xpos by1\relax}%
\makeatother
\usepackage[listings]{tcolorbox}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{dsfont}
\usepackage{microtype} % Slightly tweak font spacing for aesthetics
%\usepackage{eulervm}
%\usepackage[upright]{fourier}
%\usepackage{newtxtext,newtxmath}
\usepackage{mathptmx}
\usepackage{eulervm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\xx}{\textrm{x}}
\newcommand{\yy}{\textrm{y}}
\newcommand{\zz}{\textrm{z}}
\newcommand{\dd}{\textrm{d}}
\newcommand{\rr}{\textrm{r}}
%{notations}

\def\N{{\mathbb{N}}}

( ... plein de \def pour les notations de maths ) 

Ainsi qu'un style "perso" de beamer que mon professeur de maths m'a donné, et il n'a aucun problème avec.

Pour fini je compile avec les options :

Code : Tout sélectionner

pdflatex -synctex=1 -interaction=nonstopmode --shell-escape %.tex
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2587
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Compilation très lente

Message par gigiair »

Je ne peux pas ajouter grand chose, n'étant pas devin (ce que je regrette, paraît que ça gagne bien et pas bilant). Il faut analyser la cause du ralentissement.
Je constate la présence de -shell-escape dans la ligne de commande, ce qui laisse supposer que des appels externes sont faits. C'est là ou il serait particulièrement utile d'être devin. Les appels système sont AMHA à éviter au maximum pour des tas de raisons et peuvent être remplacés le plus souvent par des appels système pendant l'édition du code LaTeX, avant la compilation. C'est mon opinion a moi qui m'est personnelle et je la partage :wink:
JJR.
LaTeXien migrateur.
mistermazette
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : vendredi 01 mai 2020, 19:12

Re: Compilation très lente

Message par mistermazette »

Merci beaucoup pour votre "opinion a vous qui vous est personnelle" ça m'aura beaucoup aidé

bonne soirée à vous
mistermazette
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : vendredi 01 mai 2020, 19:12

Re: Compilation très lente

Message par mistermazette »

j'ai supprimé la commande

Code : Tout sélectionner

-shell-escape
(car elle ne servait à rien) et ensuite j'ai arrêté les programmes "lourds".

Je suis maintenant à 2min13 pour mes 500 frames dans quasi toutes mes compilations. Je pense que c'est "acceptable".

Merci pour votre aide.
Mistermazette.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2587
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Compilation très lente

Message par gigiair »

AUCTeX/Emacs possède une commande C-x C-r (TeX-command-region) qui, comme son nom l'indique ne compile que la région qui a été sélectionnée. Je ne sais pas si TeXStudio dispose d'une telle commande mais quand on a un gros document, pour le travailler, il n'est pas toujours nécessaire de lancer une compilation complète. Si ce n'est pas le cas, ce serait une suggestion à leur faire. J'ai fait une rapide googelisation sur ce sujet sans trouver quoi que ce soit de ressemblant.

J'ai testé, avec la commande TeX-command-run-all-region (qui appelle la précédente et qui exécute tout le processus de compilation jusqu'à l'affichage du pdf) . Sur mon fichier martyr. Sélectionner une poignée de frame et compiler, ça prend quelque secondes pour obtenir l'affichage. alors que la compilation complète prend « un certain temps »
JJR.
LaTeXien migrateur.
mistermazette
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : vendredi 01 mai 2020, 19:12

Re: Compilation très lente

Message par mistermazette »

Je vais me renseigner, et pourquoi pas changer d'interface. Merci !

Sinon, j'ai eu une idée, savez-vous s'il est possible de faire plusieurs fichiers pdf et de les fusionner à la fin (avec le même rendu qu'une gestion sur un seul document) ? Je m'explique : faire chaque chapitre de chaque matière en Beamer isolé, en indiquant la numérotation des Frames et des sections, sous-sections, etc...

Mais le problème serait dans une table des matières//figures "généralisée" ... Je n'ai rien trouvé de concluant à ce sujet non plus sur les internets.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2587
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Compilation très lente

Message par gigiair »

mistermazette a écrit :Je vais me renseigner, et pourquoi pas changer
d'interface. Merci !
AUCTeX/Emacs est assez rebutant de prime abord. Alors que TeXStudio est « tout prêt » et plutot sexy, sous Emacs doit être configuré et tout doit être installé « à la main » : par défaut pas de correcteur orthographique, pas d'auto complétion, pas de visualisateur intégré etc... Il faut également changer radicalement ses habitudes. Si toutes les commandes peuvent être activées par des icônes ou des menus déroulant, ce n'est pas vraiment l'esprit de la maison. Emacs incite fortement à utiliser des raccourcis clavier pour activer les commandes. C'est le monde à l'envers pour ceux qui ont acquis une culture informatique via les logiciels populaires commandés par clics. Mais quelle efficacité ! Et surtout, si on a un peu l'âme d'un bidouilleur, on peut ajouter les commandes que l'on veut activées comme on veut ! J'adore, mais j'avoue que j'avais pas mal pratiqué les langages de type Lisp avant de me mettre à Emacs. Ce n'est pas indispensable. Elisp est un langage interprété très facile à apprendre et très amusant à utiliser, en plus d'être très puissant.
mistermazette a écrit : Sinon, j'ai eu une idée, savez-vous s'il est possible de faire plusieurs fichiers pdf et de les fusionner à la fin (avec le même rendu qu'une gestion sur un seul document) ? Je m'explique : faire chaque chapitre de chaque matière en Beamer isolé, en indiquant la numérotation des Frames et des sections, sous-sections, etc...

Mais le problème serait dans une table des matières//figures "généralisée" ... Je n'ai rien trouvé de concluant à ce sujet non plus sur les internets.
Je crois que c'est possible, mais je n'ai pas trop d'expérience. En fait je n'utilise que très peu LaTeX depuis que je suis retraité.
JJR.
LaTeXien migrateur.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2587
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Compilation très lente

Message par gigiair »

Je ne sais pas si le problème est considéré comme résolu, mais j'ai fait de nouveaux tests avec un fichier beamer de 257 frame Il compile en un temps très raisonnable. Beamer est réputé pour être assez gourmand en temps de compilation.
voici le résultat :

Code : Tout sélectionner

time pdflatex martyr

.../.... snip le laïus de pdflatex

real	0m9,836s
user	0m9,574s
sys	0m0,176s
Mon nouveau fichier de test (je l'ai nommé martyr.tex, on peut changer de nom !) peut être récupéré par

Code : Tout sélectionner

wget -O martyr.tex http://ix.io/2kMQ
ou en suivant le lien martyr.tex.
Il peut être intéressant de comparer les résultats d'une machine à l'autre, j'ai compilé en ligne de commande, donc l'éditeur ne peut pas intervenir sauf en tant que consommateur de ressources.
JJR.
LaTeXien migrateur.
mistermazette
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : vendredi 01 mai 2020, 19:12

Re: Compilation très lente

Message par mistermazette »

Bonjour Monsieur,

Je vais étudier votre aide dans la journée,
Merci beaucoup !
-MM-