Ошибка достала...
-
@Zenodrot все существует и работает, проходит до конца. Ошибка в рандомном порядке: иногда несколько часов пашет, иногда несколько секунд. Вылетает БАС целиком.
-
@Viktor said in Ошибка достала...:
@Zenodrot все существует и работает, проходит до конца. Ошибка в рандомном порядке: иногда несколько часов пашет, иногда несколько секунд. Вылетает БАС целиком.
а ты наблюдал за памятью и загруженности процика? на весь период работы скрипта
-
@Zenodrot процу все равно, 8 ядер i7, памяти много выделяется, да. Но запас еще остается существенный. Дело не в этом. 600 мб еще оставалось, прога крашнулась.
-
@Viktor said in Ошибка достала...:
@Zenodrot процу все равно, 8 ядер i7, памяти много выделяется, да. Но запас еще остается существенный. Дело не в этом. 600 мб еще оставалось, прога крашнулась.
600 мб от обшей?? это мало критически
ты что в память загрузаешь, списки большие?
-
@Zenodrot поток чуть больше сотни жрет.Вдобавок, стоит префетчер, я его так и не смог отрубить, хотя на ноль поставил где надо в реестре
-
@Viktor said in Ошибка достала...:
@Zenodrot поток чуть больше сотни жрет.
нужно проект оптимизировать чтобы ресурсы хватило, наример можно большой список загнать в память в один поток повиснет все и вся
у тебя ситуация такая, софт хават ресурсы его каканить тулза вышибает, мб оптимизаторы или еще какая хня
-
@Zenodrot софт работает в виртуалке, я так понимаю, что на нее память сразу выделяется. Или нет?
-
@Viktor said in Ошибка достала...:
@Zenodrot софт работает в виртуалке, я так понимаю, что на нее память сразу выделяется. Или нет?
да под нее выделяется, а далее в ней уже скрипт до критической точки хавает память, 600 мб от обшей это мало очень я думаю ИМХО я максимум везде допускаю 80% загружености
на виртуалки включен фаил подкачки?
-
@Zenodrot конечно включен, три ГБ, щас работает в три потока, доступен гиг 300 именно физической памяти, столько диспетчер задач именно в виртуалке кажет..
-
@Viktor said in Ошибка достала...:
@Zenodrot конечно включен, три ГБ, щас работает в три потока, доступен гиг 300 именно физической памяти, столько диспетчер задач именно в виртуалке кажет..
да тести на разных потоках, наблюдай за ресурсами, там видно уже будет в этом ли причина
Я делал как, у меня был большые данные которые подгружались в переменку, это оперативка, далее чтобы поток с этой переменкой не работал пока нет необходжимости я выгружал память занулением переменки а эти данные выкладывал на ХД и когда опять нужны были подгружал в переменку и работал с ними и т.д, так можно оптимизировать память
мб ситуевина такая - имеем данные в оперативке с ними работаем и далее еще к ним накидываем данных и так всю память отъест и софт есесно крашниться
помни что Переменная это область оперативной памятиа если грузит процик, глянь может ты лишнии операции делаешь и можно их свести на минимум и сильно разгрузить вычисления
можно один фаил дрочить в 1000 потоков теребить его удалять строки добавлять и т.д, проц есесно будет нагружаться вместе с ХД запись чтение
-
This post is deleted!
-
@Zenodrot Спасибо за инфу!
Значит, просто устанавливаешь переменную в 0, и все, память почистилась? А по завершению потока это афтаматом происходит, или нет?
-
@Viktor После завершения потока все данные переменных очищаются. Не обязательно записывать в переменную 0, что очистить память. Можно её просто удалить переменную TEST в выполнить код :
delete VAR_TEST;
Только мне это не сильно помогало.
-
@Fox почему не помогало?
-
@Viktor Прирост производительности оказался незначительным. Проект заиграл новыми красками, когда перевёл его на запросы.
-
@Fox said in Ошибка достала...:
@Viktor После завершения потока все данные переменных очищаются. Не обязательно записывать в переменную 0, что очистить память. Можно её просто удалить переменную TEST в выполнить код :
delete VAR_TEST;
Только мне это не сильно помогало.
я зануляю когда поток работает не завершаясь, выгружаю под него оперативку, а далее поток проделав операции сново берет себе данные, засчет этого оперативка освобождается для другого потока и так по цепочке
-
@Viktor да просто 0 ставим туда, ну а если тебе освобождать не в ходе выполнения, то автоматом поток разгружает озу по завершению, как сказал Лис.
-
@Zenodrot Всё зависит от объёма данных, да и вообще, логики скрипта. В том проекте у меня всё делалось через браузер и в один поток
:D
. Я только начинал осваивать BAS.
Обнулять переменную есть смысл если объём обрабатываемых данных велик. Хотя если ты данные берёшь из текстового документа, можно его читать по частям и обработать его целиком в цикле, сработает дольше, но оперативка будет тратится меньше.
-
@Viktor said in Ошибка достала...:
@Fox почему не помогало?
учитываем браузер, он грузит скрипты и т.д а если юзаем http клиент то там только запросы, ответы без скриптов, картинок и т.д без бразера в общем шустро все летает. А если без его эмуляции никак то работая с ним в потоках оптимизируй на минимум инфы в переменных, храни масивы инфы на диске периодически подгружая выгружая.
-
@Zenodrot это частично сделано