[Users-fr] Afficher une image de 2048 par 2048

sgougeon at free.fr sgougeon at free.fr
Ven 1 Mar 10:50:38 CET 2013


Bonjour Laurent,

>>- Eviter la multiplication des variables intermédiaires très encombrantes"
>à mon avis pmodulo génère une varaible intermédiaire de la taille de x

Probablement, mais la mémoire est libérée à sa sortie.
Dans ton exemple initial, i, j, d et x sont toutes (n,n) et en session.


>>" Se souvenir que le contenu de Matplot est interprété comme des indices
>>   de couleurs dans la palette de la fenêtre graphique."
>Il me semble que les fonctions grayplot et  showimage  utilisent aussi la
>notion de palette.*

oui, mais sans le modulo, on obtient la couleur de saturation, car ~tous 
les éléments de la matrice sont >>256.

>Pour en revenir au programme pour n=10 l'espace mémoire occupé par x est
>2^10*2^10*8=8388624octets soit à peu près 8Mo et de même pour i,j,d soit
>environ 32Mo pour les variables
>Si on passe à n=12 2^12*2^12*8=1.342D+08octets soit  environ pour les
>variables x,i,j, d soit environ 512Mo
>Donc sauf erreur dans les calculs précédents avec un ordinateur avec 8Go et
>un système 64 bits et scilab 64 bits (La machine virtuelle java est elle en
>64 bits?), il reste encore 6Go pour afficher l'image. 
>Il y a quelque chose qui m'échappe.

oui, même avec toute l'attention requise pour utiliser stacksize() et gstacksize()
qui prennent des arguments en nombres de "mots longs" (j'ai cru comprendre qu'il
s'agit de nombres en double précision, ie des multiples de 8 octets, unité très
peu pratique...), le résultat de ces calculs de mémoire laisse perplexe...
Du reste, peut-être est-ce ce facteur 8 très peu lisible qui pose problème
dans la routine stacksize()...

Mais tu demandais à afficher une image 2048x2048. C'est possible !
;)

Samuel



Plus d'informations sur la liste de diffusion users-fr