Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ищу способ определить сколько байт весит тот или иной объект. (http://www.flasher.ru/forum/showthread.php?t=154127)

honest_man 13.04.2011 01:03

Ищу способ определить сколько байт весит тот или иной объект.
 
Итак, есть ли способ определить сколько памяти занимает конкретный объект в конкретной переменной?
Рылся рылся в справочнике адобы, но так ничего связоного с памятью (кроме flash.system.System.totalMemory()) и не нашел =(
AS3 плевать хотел на память? У переменных есть хоть какое-то дно или они бездонные?

ChuwY 13.04.2011 01:16

flash.sampler.getSize

expl 13.04.2011 01:39

можно еще сериализовать в byteArray и посмотреть какая у него стала длина.

gloomyBrain 13.04.2011 13:17

Цитата:

можно еще сериализовать в byteArray и посмотреть какая у него стала длина.
... и долго удивляться потом

Код AS3:

var s:String = "1234";
trace(getSize(s)); // 24
 
var ba:ByteArray = new ByteArray();
ba.writeObject(s);
trace(ba.length); // 6
 
ba.length = 0;
ba.writeUTF(s);
trace(ba.length); // 6
 
ba.length = 0;
ba.writeUTFBytes(s);
trace(ba.length); // 4

Тем более, что правильно сеарилизовать, например, Sprite у Вас вряд ли получится. Плюс ко всему есть всякие IExternalizable, которые позволяют записывать объекты в ByteArray использую свой собственный алгоритм

Anton Riot 13.04.2011 13:42

Определять, сколько памяти занимает переменная, для AS3 программиста, скорее всего, не нужна. Это не его забота, я думаю. Это к другим языкам относится.

А размер объектов можно посмотреть в логе при компиляции.

alatar 13.04.2011 15:02

Цитата:

Сообщение от Anton Riot (Сообщение 989026)
Определять, сколько памяти занимает переменная, для AS3 программиста, скорее всего, не нужна. Это не его забота, я думаю. Это к другим языкам относится.

С чего такой вывод?
Цитата:

Сообщение от Anton Riot (Сообщение 989026)
А размер объектов можно посмотреть в логе при компиляции.

И что же там можно увидеть?

Anton Riot 13.04.2011 19:20

Вывод с того, что работа напрямую с памятью в этом языке ограничена. В size report можно увидеть размеры объектов библиотеки, что за глупый вопрос?

alatar 13.04.2011 19:33

Цитата:

Сообщение от Anton Riot (Сообщение 989119)
Вывод с того, что работа напрямую с памятью в этом языке ограничена.

И что? Это дает право плевать на оптимизацию?
Цитата:

Сообщение от Anton Riot (Сообщение 989119)
В size report можно увидеть размеры объектов библиотеки, что за глупый вопрос?

size-report появился только в Hero. Который официально еще не вышел (по крайней мере до конца мая). К тому же, с его помощью нельзя узнать размер динамического объекта, только то что доступно на этапе компиляции.

Anton Riot 13.04.2011 20:09

Оптимизация размера занимаемой памяти начинается с чистки за собой всего, что больше не используется, а минимизировать биты, занимаемые конкретным значением конкретной переменной - занятие сомнительной полезности. Только разве что если речь идёт о пересылке пакетов в сокетах, но для определения размера byteArray как раз есть свой функционал.

size-report есть даже в Adobe Flash CS3. Да, только то, что доступно на этапе компиляции, - т.е. что есть в библиотеке. И что? Этого для многих задач может вполне хватить:)

alatar 14.04.2011 00:47

Цитата:

Оптимизация размера занимаемой памяти начинается с чистки за собой всего, что больше не используется
Это не оптимизация, а обычный процесс разработки.
Цитата:

а минимизировать биты, занимаемые конкретным значением конкретной переменной - занятие сомнительной полезности.
Хорошо, сколько памяти сожрут 20 динамически созданных битмап?
Цитата:

size-report есть даже в Adobe Flash CS3.
Понятия не имею, что там в Flash CSx творится, уже года три как не пользовался.
Цитата:

Этого для многих задач может вполне хватить
Для многих — это для одной единственной? И что делать если библиотека пуста? Embed, вроде как, Flash CSx уже понимает.


Часовой пояс GMT +4, время: 12:46.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.