@CSharpChatЭта группа больше не существует

Страница 1025 из 1888
Anatoly
14.05.2017
03:26:01
@Worldbeater @troyanov Модераторы, тут втирают какую-то дичь

Илья
14.05.2017
04:37:25
это че реклама наркоты? О_о

Max
14.05.2017
04:42:24
О, тысячник

Владимир
14.05.2017
04:43:01
Google
Дмитрий
14.05.2017
04:45:03
из ммм?
Из участников

Friedrich
14.05.2017
06:31:05
@nikita_tsukanov большое спасибо за плагин к VS2017, всё прекрасно работает.

Правда, там шрифты почему-то выглядят странно, не так как в остальной студии. Попробую сделать патч чтоли.

Begpo_CnupTa
14.05.2017
06:48:02
хочу потренироваться в ASP.NET MVC какую VS ставить из бесплатных и какой ASP? для тех кто будет в первый раз с этим разбираться?

Timur
14.05.2017
06:50:37
последняя VS

Begpo_CnupTa
14.05.2017
06:51:33
я нашёл гайдик тут вс2012

https://habrahabr.ru/post/175999/

вот думаю 15 или 17 ставить)

Timur
14.05.2017
06:52:01
не надо думать, надо ставить

Cloudlet
14.05.2017
06:52:03
вот думаю 15 или 17 ставить)
https://metanit.com/sharp/mvc.php

Timur
14.05.2017
06:52:03
17

Cloudlet
14.05.2017
06:52:39
вот думаю 15 или 17 ставить)
4, 5, Core на выбор руководства

Илья
14.05.2017
06:52:42
вот думаю 15 или 17 ставить)
Какой смысл ставить старую версию? Всегда надо ставить последнюю.

Google
Begpo_CnupTa
14.05.2017
06:53:11
ну может последняя платная, я хз

Timur
14.05.2017
06:53:29
платная про

комьюнити бесплатные

Илья
14.05.2017
06:53:38
во всех версиях есть бесплатная Community версия

Timur
14.05.2017
06:54:14
на сайте студии же всё написано

Begpo_CnupTa
14.05.2017
06:55:03
спасибо

Миша
14.05.2017
06:56:51
Ребят, а есть кто по UWP шарит?

У меня проблема абсолютно тупая

Не могу понять как что-нибудь из памяти выгрузить.

Видео допустим, которое загружал MediaPlayer

Или игру на MonoGame

Вроде как учили, делаю = null; а количество используемой памяти не уменьшается.

А если ещё раз попробовать запустить игру или открыть видео - увеличевается.

Миша
14.05.2017
07:02:01
Так как правильно-то?

Я не помню где это подчерпнул. Там было типа что сборщик мусора должен выпроводить после приравнивания к null.

Slava
14.05.2017
07:07:29
Так как правильно-то?
присвоение null - это не освобождение памяти, а присвоение нулевой ссылки. Память сборщик мусора освобождает по своей прихоти и неизвестно когда.

Миша
14.05.2017
07:07:29
Объясните же как правильно, ну?

Принудительно я освободить её не могу, только надеяться что борщик мусора соизволит?

WarFollowsMe
14.05.2017
07:08:17
да

Google
WarFollowsMe
14.05.2017
07:08:43
сборщик мусора чистит память если на нее никто не ссылается

Vyacheslav
14.05.2017
07:09:26
Вроде можно сборщику сообщить что не пользуешься объектом

WarFollowsMe
14.05.2017
07:09:37
GC.Collect есть но это очень плохая практика

Slava
14.05.2017
07:09:46
Принудительно я освободить её не могу, только надеяться что борщик мусора соизволит?
но делает он это сравнительно быстро. Если что то остаётся в памяти - значит почему-то сборщик не может этот объект удалить

WarFollowsMe
14.05.2017
07:10:04
именно так

Friedrich
14.05.2017
07:10:52
Объясните же как правильно, ну?
Ради интереса вызови GC.Collect + GC.WaitForPendingFinalizers + снова GC.Collect. Если это не помогает — бери профайлер памяти и разбирайся, чего утекает и почему.

Ну а если помогает — тогда забей, утечки нет

Миша
14.05.2017
07:13:33
Не, не помогает.

Slava
14.05.2017
07:16:24
разбирайся что память держит

WarFollowsMe
14.05.2017
07:17:29
dotMemory у брейнсов вроде бесплатный. мне пару раз помогал

Gid
14.05.2017
07:17:34
GC.Collect есть но это очень плохая практика
Нет гарантии что гк коллект вызовет гк

Принудительно вызвать сборщик мусора как мне помнится вообще не возможно

Gid
14.05.2017
07:18:38
ну то есть УСЛОВНО ПЛАТНЫЙ

WarFollowsMe
14.05.2017
07:19:20
Free trial for 5 days of actual use. Думаю хватит

Миша
14.05.2017
07:29:19
Так, ну я понял что у меня не вычищается ни один экземпляр той фигни, которую я сам писал.

Это, получается, мне нужно просто пройтись по ним и "присвоить нулевую ссылку"?

Вообще это как-то странно. А нельзя Game.Exit() как-то перегрузить что бы он окно не убивал?

Gid
14.05.2017
07:32:00
Free trial for 5 days of actual use. Думаю хватит
ввести jetbrains.tech и будет inf

там ток 24 дня осталось правда

Google
WarFollowsMe
14.05.2017
07:33:24
Это, получается, мне нужно просто пройтись по ним и "присвоить нулевую ссылку"?
смотря как используешь эти объекты. объект существует только в тех рамках где создан. если внутри метода, то при выходе из метода ссылка обнулится и память почистится, если внутри класса, то нужно убрать ссылку на объект этого класса. также используется using для потоковых штук типа FileStream и тому подобное, в этом случае память чистится при выходе из using

Миша
14.05.2017
07:37:05
Именно по этому я и не понимаю в чём проблема

WarFollowsMe
14.05.2017
07:37:21
ну еще конечно же важным пунктом являются потоки и события. если в классе есть event и в объекте этого класса на это событие кто-то повесится, то даже при присвоении объекту нулевой ссылки он все равно останется в памяти пока не освободится событие.

Миша
14.05.2017
07:37:41
Не такого нет

У меня инициализация игры: _game = MonoGame.Framework.XamlGame<Game1>.Create(launchArguments, Window.Current.CoreWindow, swapChainPanel); - одна срока, блин

WarFollowsMe
14.05.2017
07:37:56
тогда нужно смотреть код

Миша
14.05.2017
07:38:45
В прошлый раз, когда я с этим столкнулся - под туже UWP пытался клиент для одного стримингового сервиса сделать

Admin
ERROR: S client not available

Миша
14.05.2017
07:38:57
Забил на это тоже потому, что не смог никак освобождать память

И если тут, с игрой, я ещё мог где-то накосячить

То там это выглядело: _MediaPlayer.SetSource(...); и всё

WarFollowsMe
14.05.2017
07:39:50
по этой строке сложно что-то понять. пройдись профайлером. посмотри что именно жрет память.

Slava
14.05.2017
07:39:52
Профайлер покажет что течёт

Миша
14.05.2017
07:40:05
Да я вижу что жрёт память

WarFollowsMe
14.05.2017
07:40:13
что?

Миша
14.05.2017
07:40:20
Ну, в смысле прошёлся уже

Все экземпляры, которые я в процессе игры создаю.

Почти

Но как бы я их создаю из _game, который должен освобождаться

WarFollowsMe
14.05.2017
07:41:54
если в твоей игре заложена такая логика, что существование этих экземпляров необходимо на протяжении всего сеанса игры, то значит у нее такие минимальные требования по памяти, что тут еще скажешь.

Google
WarFollowsMe
14.05.2017
07:42:22
либо меняй архитектуру свой игры, чтобы не надо было держать все объекты постоянно существующими. либо расширяй оперативку.

Миша
14.05.2017
07:42:51
Да в том-то и дело

У меня оперативы используется всего 60 МБ (прямо сейчас)

И 55 из них - это всякая XAML'ская ерунда

Ну, в смысле требования действительно очень не высокие

Но при смене уровня у меня эти жалкие 5 МБ никуда не исчезают

А уровней может быть много

Ну вот напрмер у меня есть класс Level

На уровне есть клетки - двумерный массив.

LevelCell[,] levelCellList = new LevelCell[60, 60];

Вот так выглядить инициализация уровня

В конце игры я просто делаю _level = null; // _level - экземпляр

Но 3600 клеток, каждая из которых содержит ещё по два объекта никуда не исчезают

Friedrich
14.05.2017
07:53:04
@nikita_tsukanov я вам там ШГ починил! https://github.com/AvaloniaUI/AvaloniaVS/pull/46

Миша
14.05.2017
07:56:38
Это жесть какая-то.

У меня просто в голове не укладывается

Я уже спецом в цикле перебрал все эти 3600 тупых клеток

И нифига

Из памяти они не уходят

Страница 1025 из 1888

Эта группа больше не существует Эта группа больше не существует