2010-04-12 7 views
2

J'ai un composant flexible qui fonctionne plutôt bien mais qui se transforme malheureusement en un désastre une fois utilisé dans un rendu d'élément datagroup d'environ 40-50 éléments. Essentiellement, il utilise bitmapdata pour prendre une capture d'écran d'une page Web entièrement rendue en mx: HTML (cette version de webkit est btw, miles meilleure que flex 3).Bitmapdata utilisation intensive - désastre de mémoire (étincelle/FB4)

Le code est assez explicite, je pense.

http://noben.org/show/PageGrabber.mxml

J'ai optimisé tout ce que je pouvais, furetage, recherche de réponses et déjà parés vers le bas beaucoup, je suis désespéré de réduire l'utilisation de la mémoire (environ 600 Mo après 100 tirage)

Le récupérateur de place a peu d'effet.

Merci! Nic

Répondre

2

Vous devez appeler BitmapData.dispose() lorsque vous avez terminé avec eux, vous ne pouvez pas les jeter loin et nous espérons qu'ils se recueille. Parfois, ils vont, mais souvent: '(

2

serait les auditeurs d'événement se tient sur en raison de referance forte? Essayez de supprimer les écouteurs ou d'utiliser des références faibles. Voir si elle aide

+0

je doute que cela aurait un tel effet encore, qu'il faut savoir sur et garder la trace.. – ivanreese

1

Avez-vous jamais disposer de smallBMD? Vous voudrez peut-être vous assurer qu'ils ne s'accumulent pas dans la mémoire, s'attardant après utilisation, puisque vous en créez un nouveau chaque fois que le passoire_completeHandler est appelé, sans disposer du précédent (pour autant que je puisse voir).