3 votes

MATLAB est lent à ouvrir les fichiers à éditer

Je suis sur r2013a sur Mac OS 10.8.3, et je remarque des performances très lentes lors de l'ouverture d'un fichier .m pour l'édition. J'ai lancé le profileur sur open filename.m et voilà ce que je vois :

Profile information

Qu'est-ce qu'il fait en essayant de le lire comme un fichier vidéo ? Il ne pourrait pas vérifier l'extension d'abord ? C'est un .m pourquoi prendre la peine de vérifier si c'est une vidéo ?

Je suis curieux de savoir s'il existe une solution. Le délai commence à me taper sur les nerfs.

4voto

B... Points 6098

Utilice edit filename.m à la place. Il n'invoque pas VideoReader et est plus de 10 fois plus rapide.

3voto

user3007866 Points 31

Il semble que l'édition finfo() semble résoudre le problème. Si vous ne disposez pas des autorisations nécessaires pour modifier le fichier original, placez simplement la copie modifiée quelque part et ajoutez-la au chemin d'accès de MATLAB.

La version modifiée finfo() comporte les lignes suivantes (à partir de la ligne 56 dans la version que j'ai). Le seul changement est que la gestion des fichiers .m est faite avant et à la place toute la gestion vidéo/audio :

if ~isempty(ext)
    if any(strcmp(ext, {'m'}))
        % try to find handler on the path
        openAction = which(['open' ext]);
        loadAction = which([ext 'read']);
    else

        % Get the list of supported video file formats on this platform
        try
            videoFileFormats = VideoReader.getFileFormats;
            % extracting video file extensions
            videoFileExt = {videoFileFormats.Extension};
...
...
...
end %(line 134)

Maintenant, l'ouverture des fichiers .m se fait soit à partir du panneau du dossier courant, soit à partir de la fenêtre de commande. open() fonctionne rapidement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X