Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.10.2015, 13:54
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 1  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
По умолчанию узнать фактический объем памяти у юзера

Класс flash.system.System говорит только о том, сколько памяти использует инстанс FP,но эти цифры не с чем сравнивать.
В проде постоянно появляются эроры типа error #1000(out of memory).
Утечку в связи не отписанным лисенером исключаю, т.к. везде и всюду стоит weakReference=true.У битмап всех dispose вызываю.Есть еще идея перейти на пул URLLoader'ов, но не уверен хорошая ли это практика.
Никак не возьму в толк с чем эта ошибка связана, у юзеров кончилась и память и место на диске что ли?
Вообщем вопрос:
как узнать общий объем физической памяти?

Старый 22.10.2015, 14:53
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 2  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Цитата:
Утечку в связи не отписанным лисенером исключаю, т.к. везде и всюду стоит weakReference=true.
Какая наивность... Тут бы скаутом посмотреть на утечки

Старый 22.10.2015, 15:14
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 3  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
Цитата:
Какая наивность
Специально прошелся поиском по всем подпискам и проверил - везде слабые ссылки.Сколько не мучался, Скаут к фд так и не вышло подцепить. Пишет только базовую инфу


Последний раз редактировалось undefined; 22.10.2015 в 15:43.
Старый 22.10.2015, 16:17
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 4  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Цитата:
везде слабые ссылки
Это вообще никак не гарантирует корректную работу gc. От ненужных слушателей необходимо всегда отписываться вручную.

Старый 22.10.2015, 16:40
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 5  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
illuzor, поясни свою мысль.Впервые слышу такое.

Старый 22.10.2015, 16:45
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 6  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Ещё Колин Мук об этом писал. Также можно в справке посмотреть.

Старый 22.10.2015, 16:52
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 7  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
Цитата:
Прослушиватели событий не удаляются из памяти автоматически, так как сборщик мусора не удаляет прослушиватель, пока существует объект, отправляющий соответствующее событие (если параметру useWeakReference не задано значение true).
Код AS3:
item.loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, handleProgress,false,0,true);
item.loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleComplete,false,0,true);
item.loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleError, false, 0, true);
и так везде у меня

Добавлено через 9 минут
вообще сформулировано так, что мозг сломаешь.
Цитата:
Прослушиватели событий не удаляются из памяти автоматически
Мне всегда казалось, что прослушиватели событий - это функции их удалять и не надо
Цитата:
объект, отправляющий соответствующее событие
А это как раз и есть то, что отжирает память их удалять как раз надо.
Мне кажется в хэлпе перепутаны эти два понятия

Старый 23.10.2015, 08:51
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Блин, ты же уже давно занимаешься кодингом, неужели до сих пор не научился грамотно удалять слушатели?
Забей на эти дурацкие слабые ссылки, и отписывайся всегда только вручную. Вся эта хрень только путаницу создает, на деле они часто глючат. Там индусы этот код в FP наверное вообще через задницу написали.

На счет памяти. В какой момент вылетает эксепшен? У тебя там случайно не получается так, что куча битмапдат в памяти болтается? Ненужные все диспозятся?

Цитата:
Скаут к фд так и не вышло подцепить. Пишет только базовую инфу
Нужно компилятор ASC 2.0 установить для этого.
1) В FD зайди в Tools - Install Software и чекни AIR SDK + ASC 2.0, он скачается и куда-то распакуется (точно не помню, надо глянуть куда),
2) потом зайди в папку со скачанным AIR SDK/bin и создай там файл jvm.config
с таким содержимым:
Код:
################################################################################
##
##  ADOBE SYSTEMS INCORPORATED
##  Copyright 2007 Adobe Systems Incorporated
##  All Rights Reserved.
##
##  NOTICE: Adobe permits you to use, modify, and distribute this file
##  in accordance with the terms of the license agreement accompanying it.
##
################################################################################

#
# VM configuration
#
# Where to find JVM, if {java.home}/jre exists then that JVM is used
# if not then it must be the path to the JRE itself
#
# If no java.home is specified a VM is located by looking in these places in this
# order:
#
#  1) JAVA_HOME environment variables (same rules as java.home above)
#  2) bin directory for java.dll (windows) or lib/<ARCH>/libjava.so (unix)
#  3) ../jre 
#  4) registry (windows only)
#

java.home=C:\Program Files (x86)\Java\jre1.6.0_05

# Arguments to VM

java.args=-Xmx768m -Dsun.io.useCanonCaches=false

# Environment variables we care about, whitespace-separated

env=

# java.class.path - use this for adding individual jars or
# directories.  When directories are included they will be searched
# for jars and zips and they will be added to the classpath (in
# addition to the directory itself), the jar to be used in launching
# will be appended to this classpath
 
java.class.path=

#
# where to find shared libraries, again use commas to separate entries

java.library.path=
Ну, в переменную java.home, естественно впиши свой путь где у тебя установлена 32 битная джава
у меня так:
java.home=C:\Program Files (x86)\Java\jre1.6.0_05

3) Запусти FD и зайди в Project - Properties - Compiler Options и поставь Advanced Telemtry - true
4) ?????
5) PROFIT

Старый 23.10.2015, 13:44
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 9  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
caseyryan у меня вот выдал, что-то не так
Код:
command line: Error: unknown configuration variable 'advanced-telemetry'
Use 'mxmlc -help' for information about using the command line.
Build halted with errors (fcsh).
чёт не втуплю, что ему не нравится
путь к java указан верно, т.к. если поменяю что либо в пути, ругается, что не находит java

Старый 23.10.2015, 14:33
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 10  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
Цитата:
надо глянуть куда
Глянь плз чет никак не найду куда он качает.В папке FD его нет.
Цитата:
На счет памяти. В какой момент вылетает эксепшен? У тебя там случайно не получается так, что куча битмапдат в памяти болтается? Ненужные все диспозятся?
Вот в этом и загадка, судя по логам, эксепшен иногда бросается при первом старте игры после загрузки большой битмапдаты(jpeg 1792x1536).Если бы перед этим была километровая портянка- еще куда не шло.
В памяти сидят только те, битмапы, которые нужны, остальное утилизирую.
Думаю скаут должен расставить все точки.Если действительно gc глючит - перепишу на сильные ссылки.

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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