Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
вадя. Вот кусок твоего кода встретил на хабре.
Консультируй.
Тут ошибка что не очишаются файлы блоб в локальном хранилище хрома.
Каждый вызов этой функции создаёт новый здоровый блоб на клиенте.
пример ссылки:
blob:http://localhost:8080/02a0f2dc-8835-41cb-a561-0796347ce613
chrome://blob-internals/

Как исправить?

function getPic() {
		this.map[mm].getData(new zip.BlobWriter("image/jpeg"), function (fileBlob) {
				this.progress_load.value = mm + 1;
				this.current_files.innerHTML = (mm + 1) + '  из  ' + this.map.length + ' >>  ' + this.map[mm].filename;
				this.filename = this.map[mm].filename;
				
				window.pic = null;
				pic = new Image();
				pic.onload = function (p) {

						this.img.height = p.target.height;
						this.img.width = p.target.width;
						if (p.target.height > p.target.width) {
								this.img.scale = this.st_full_height / p.target.height;
								this.pics.full_height = this.st_full_height;
								this.pics.full_width = p.target.width * this.img.scale;
								this.pics.preview_height = this.st_preview_height;
								this.pics.preview_width = p.target.width * this.st_preview_height / p.target.height;
						}

						if (p.target.height < p.target.width) {
								this.img.scale = this.st_full_width / p.target.width;
								this.pics.full_width = this.st_full_width;
								this.pics.full_height = p.target.height * this.img.scale;
								this.pics.preview_width = this.st_preview_width;
								this.pics.preview_height = p.target.height * this.st_preview_width / p.target.width;
						}


						if (p.target.height === p.target.width) {
								this.img.scale = this.st_full_width / p.target.width;
								this.pics.full_height = this.st_full_height;
								this.pics.full_width = this.st_full_width;
								this.pics.preview_height = this.st_preview_height;
								this.pics.preview_width = this.st_preview_width;
						}


						var h = this.img.height * this.img.scale;
						var w = this.img.width * this.img.scale;
						this.new_img.height = this.current_img.height = h;
						this.new_img.width = this.current_img.width = w;
						this.new_img.top = this.current_img.top = 0;
						this.new_img.left = this.current_img.left = 0;
						this.new_img.x = this.current_img.x = this.pics.full_width / 2;
						this.new_img.y = this.current_img.y = this.pics.full_height / 2;
						this.img.rotate = 0;
						this.cropp.call(this);
				}.bind(this);
				pic.src = urlFactory.createObjectURL(fileBlob, {type: "image/jpeg"});
				mm++;
		}.bind(this), function (current, total) {
//                    console.log(current, total);
		}
		);
}
6 ноя 19, 15:46    [22010864]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
PetroNotC Sharp
window.pic = null;
вот это в js не работает что сборка мусора убрала блоб. Так как пишут что ссылка все равно осталась.
Вроде только в java работает.
6 ноя 19, 17:30    [22010972]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16782
PetroNotC Sharp
Тут ошибка что не очишаются файлы блоб в локальном хранилище хрома.
на что влияет?
не замечал влияния на что либо...
window.pic = null;
и это не тут проявляется..
7 ноя 19, 01:09    [22011159]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16782
буду исследовать...
7 ноя 19, 01:09    [22011160]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
вадя
на что влияет?
даже если блоб 500 мегов отправлен на сервер, он остается в памяти пока живет window.
Память растет, потом переходит на своп и работает все медленнее.
Нужно каким то образом очищать после отправки так как на клиенте он уже не нужен.
7 ноя 19, 07:10    [22011177]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16782
PetroNotC Sharp
даже если блоб 500 мегов отправлен на сервер, он остается в памяти пока живет window.
Память растет, потом переходит на своп и работает все медленнее.
Нужно каким то образом очищать после отправки так как на клиенте он уже не нужен.
провел исследования:
очистил историю хрома
очистил всё временное с помощью ccleaner.
загрузил зип 1.5гиг 614 файлов
пока загружались - эти блобы отображались в DevTools во вкладке источники.
при переходе на другую страницу и обратно - упоминание об этих блобах теряются...

посмотрел историю - никаких упоминаний о подобном размере, ничего...
Ccleaner не показал какого-либо заметного увеличения использованного хромом места

так что твои опасения напрасны.
про своп - ну тут вопрос спорный - простое "удаление" - это дело сборщика мусора, но как и когда он запускается - это никому не известно.
в инете - много вопросов про удаления блобов, но все они не сказываются на их удалении из "локального хранилища" , по крайне из списка не удаляются.
7 ноя 19, 09:38    [22011229]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16782
PetroNotC Sharp,

даже во время обработки файлов память не шибко изменяется

К сообщению приложен файл. Размер - 87Kb
7 ноя 19, 09:54    [22011241]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
вадя
пока загружались - эти блобы отображались в DevTools во вкладке источники.
то есть, 614 файлов загрузились и висят в памяти пока загружается 615 ый файл?
- зачем тогда асинхронность в загрузке?
- что делать на сотовых и планшетах где всего оперативы 1 гигабайт?
7 ноя 19, 10:05    [22011247]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
вадя
даже во время обработки файлов память не шибко изменяется

Введи
chrome://blob-internals/
А то термин "не шибко" как то не инженерно)
7 ноя 19, 10:07    [22011249]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
вадя
так что твои опасения напрасны.
ты так в своей техподдержке отвечаешь?
7 ноя 19, 10:09    [22011251]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16782
PetroNotC Sharp
то есть, 614 файлов загрузились и висят в памяти пока загружается 615 ый файл?
ничего не висит - на картинке же видно как изменяется память.
даже сам зиповский файл не загружается полностью.
загружается только список зазипованных файлов с инфой их расположения и прочей информацией.
7 ноя 19, 10:12    [22011255]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
PetroNotC Sharp
window.pic = null;
pic = new Image();
этот код НЕ РАБОЧИЙ
Глобальная переменная pic затирается и память не освобождается.
До уничтожения страницы.
7 ноя 19, 10:13    [22011258]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
вадя
PetroNotC Sharp
то есть, 614 файлов загрузились и висят в памяти пока загружается 615 ый файл?
ничего не висит - на картинке же видно как изменяется память.
даже сам зиповский файл не загружается полностью.
загружается только список зазипованных файлов с инфой их расположения и прочей информацией.
ты тупой?
Набери в хроме
chrome://blob-internals/
Что видишь?
7 ноя 19, 10:15    [22011261]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16782
PetroNotC Sharp
chrome://blob-internals/
Что видишь?
открыл - смотрел
ты можешь сам - найти строчки с местом хранения
там есть путь - открой в проводнике (не закрывая хром) увидишь список этих "блобов"
закрой хром и все они пропадут
7 ноя 19, 10:19    [22011266]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16782
PetroNotC Sharp
Глобальная переменная pic затирается и память не освобождается.
До уничтожения страницы.
освобождением памяти занимается сборщик мусора.
когда он запускается - не известно
возможно когда появится необходимость
7 ноя 19, 10:21    [22011267]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
вадя
закрой хром и все они пропадут
молодец программист - закрой exe. и память очистится))))
Итого повтор вопроса. 614 блобов там есть пока качаю и уже перекачал 615?
Да или нет?
7 ноя 19, 10:21    [22011268]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
вадя
освобождением памяти занимается сборщик мусора.
если у объекта нет рабочих ссылок, неуч.
Двойка.
7 ноя 19, 10:22    [22011271]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
Пришлось самому искать.
Первая ссыль говорит что в js нужен оператор delete переменная.
7 ноя 19, 10:24    [22011274]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16782
PetroNotC Sharp
Первая ссыль говорит что в js нужен оператор delete переменная.
ты думаешь я не нашёл этого?
7 ноя 19, 10:26    [22011278]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
вадя
PetroNotC Sharp
Первая ссыль говорит что в js нужен оператор delete переменная.
ты думаешь я не нашёл этого?
дак вставь. У тебя упрямства выше крыши.
На планшете 1 гиг оперативы
7 ноя 19, 10:40    [22011293]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16782
PetroNotC Sharp
если у объекта нет рабочих ссылок
это подразумевается само сабой.
даже после delete windows.pic
если откроешь chrome://blob-internals/ ты увидишь список блобов
7 ноя 19, 10:42    [22011298]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
вадя
PetroNotC Sharp
если у объекта нет рабочих ссылок
это подразумевается само сабой.
даже после delete windows.pic
если откроешь chrome://blob-internals/ ты увидишь список блобов
вижу ты начал работать.
Продолжай.
Реши проблему.
Я могу запустить твою функцию при ответе по AJAX.
Напиши её тут.
7 ноя 19, 10:44    [22011300]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
А то придется идти в js ветку(
7 ноя 19, 10:45    [22011301]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16782
PetroNotC Sharp,
на оперативку это не влияет.
но в папке \Google\Chrome\User Data\Default\blob_storage этих файлов , действительно, нет
7 ноя 19, 10:45    [22011302]     Ответить | Цитировать Сообщить модератору
 Re: вадя. Встретил твой код на хабре.  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
вадя
PetroNotC Sharp,
на оперативку это не влияет.
но в папке \Google\Chrome\User Data\Default\blob_storage этих файлов , действительно, нет
щас проверю
7 ноя 19, 10:46    [22011303]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Java Ответить