
Летучая
03.11.2016
17:27:52
Или секрет?

Sergey
03.11.2016
17:28:14
Есть

Летучая
03.11.2016
17:29:17
Ссылкой не поделишься? :)
Ну или как называется
любопытно жи

Google

Sergey
03.11.2016
17:30:30
чуть позже, я счас занят
через часок мож

Alexander
03.11.2016
17:34:36
Как раз вопрос о UWP. Есть годные ресурсы касательно оптимизации, помимо официальных источников?

Летучая
03.11.2016
17:53:49
гугл
тут зависит, что именно оптимизировать
гуглил на прошлой неделе очень долго и упорото про ускорение закрузки страницы xaml, так ничего и не выгуглил
в большинстве случаев всё сводится к оптимизации логики навигации. сначала меню красишь, потом одну тяжелую часть появляешь, потом другую
в особо запущенных случаях (либо когда лень) тупо пишешь task.delay(150) и пока он ждёт, играешь анимацию уползающего меню )
ну и решает количество элементов в visual tree. <Grid><StackPanel /></Grid> хуже чем просто <StackPanel/>, например

Alexander
03.11.2016
18:01:35
Это понятное дело. Task.Delay? Зачем?
Мне конкретно интересно о том, какой элемент управления как отображается, и какой расход ресурсов за собой влечет?

Летучая
03.11.2016
18:02:29
Ну тут уж надо официальные доки смотреть.

Анатолий
03.11.2016
18:02:36

Летучая
03.11.2016
18:02:47
Сколько они в каждый контрол всякой хрени полезной понапихали.

Alexander
03.11.2016
18:03:24
Я понял. Ждемс литературу

Google

Летучая
03.11.2016
18:04:00
Ну вот Pivot например. https://msdn.microsoft.com/ru-ru/library/windows/apps/mt299144.aspx
Создаётся куча объектов при прогрузке элемента управления, анимаций, вижуал стейтов. И соотв-но работает оно так же НЕРАСТОРОПНО
Тут надо на исходный код каждого контрола смотреть.

Alexander
03.11.2016
18:05:59
Со скоростью проблем нет. Понятно дело, что избыточная вложенности повлечет за собой проблемы. Мне интересны расходы оперативной памяти. Адекватного профилировщика нативных ресурсов UWP приложения я не нашел

Летучая
03.11.2016
18:06:36

Alexander
03.11.2016
18:08:07
Сомневаюсь, что это лучшее решение)

Летучая
03.11.2016
18:08:31
Как решить проблему я не нашёл. Решаю как обычно, врубаю обязательный кэш страниц: <Page NavigationCacheMode="Required" />
Здесь оно запрещает создавать новые страницы. Тогда память течь перестаёт.

Welcome Bot
03.11.2016
18:09:32
Привет fait, есть два стула... На одном винформы отточены, на другом XAMLы раскурочены. На какой сам сядешь, на какой братишку-джуниора посадишь?

Летучая
03.11.2016
18:09:52
Кстати, эта утечка воспроизводится даже в дефолтных приложениях, таких, как "Погода" или "Новости".
Можешь поиграться с тыками по меню и посмотреть на течь в диспетчере задач )

Alexander
03.11.2016
18:10:20
Это я уже понял из своего опыта) протестил dotMemory пару приложений из магазина

Летучая
03.11.2016
18:10:34
И как оно? Мусорщик тупо не трёт старые страницы?

Alexander
03.11.2016
18:10:43
Ресурсы нативные
Сборщик мусора не. Net'а собирает ресурсы
Тут бока у WinRT

Летучая
03.11.2016
18:11:30
Так вот оно что

Alexander
03.11.2016
18:12:05
Угу. Тут только доки читать
Я думал может кто-то уже собрал адекватную инфу в статье
Кстати, что занимает эту память, я так и не смог узнать. Ни один профилировщик, ни в одном режиме, не может показать, что там лежит

Летучая
03.11.2016
18:13:26
забавно

Google

Летучая
03.11.2016
18:13:37
мб это кто-то-там что-то набыдлокодил
снимает тип и болтается там куча говна, которую никто не убирает

Alexander
03.11.2016
18:14:22
Это прискорбно. Может будущие апдейты десятки поправят этот бред
Однако сборщик в WinRT таки собирает неиспользуемые компоненты, просто слишком поздно
Еще дело может быть во Frame, который при навигации хранит ссылки назад и вперед

Летучая
03.11.2016
18:15:22
а кстати. может влиять, под какой версией UWP собирать приложение?
я прост всё время собираю под 10240, чтобы максимизировать совместимость. не пробовал компилировать под 14***, например?

Alexander
03.11.2016
18:16:32
Вряд-ли, тут же проблемы во времени выполнения. Так как сборщик WinRT срабатывает даже при дальнейшем бездействии приложения

Sergey
03.11.2016
18:21:59
Уууу, кокие вы суровые UWP оптимизаторы, мне до вас далеко. Я так, ради баловства написал клиент для лепрорадио. В сторе легко ищется по "leproradio"
Есть для 8.1 со старым интерфейсом и глючное, и новое UWP, чуть менее глючное

Летучая
03.11.2016
18:22:53
супер вообще :)
красота

O'Miay
03.11.2016
18:23:18

Sergey
03.11.2016
18:23:20
В принципе ничего сложного, гамбургер (чтоб все как у людей, фигле). Прослушка с бекграундворкером и жсон плейлист

Летучая
03.11.2016
18:23:51
студентам дают бесплатно

O'Miay
03.11.2016
18:24:56
Я платил за лицензию разработчика в 14 году, сейчас для стор получается актуален?

Sergey
03.11.2016
18:24:56
Все писалось абыкак, просто посмотреть как это все устроено в стор-приложениях, поэтому нет ни хорошей поддержки поворота девайса, ни оптимизации памяти и прочего стаффа.
ее сделали пожизненно валидной

O'Miay
03.11.2016
18:25:26
круто!

Google

Летучая
03.11.2016
18:26:12
пойду 5 звёзд тебе влеплю
топ
у меня вот такое https://www.microsoft.com/en-us/store/p/myfeed/9nblggh4nw02
и такое https://www.microsoft.com/en-us/store/p/mymatrix/9nblggh530bd

Alexander
03.11.2016
18:29:40
Пойдет, а у меня сейчас клиент для внутриофисной социалки, и тут без мыслей об оптимизации никуда...

Sergey
03.11.2016
18:30:20
Сча усядусь в транвай - подробее расскажу

Летучая
03.11.2016
18:34:16
недавно решил таки запелить нормальный клиент для ВК фор виндовс 10. после запила списка друзей с semanticzoom таки тоже про оптимизацию думать начал :)

Sergey
03.11.2016
18:39:31
Как уже говорил, приложение пилил ради фана и освоения новых технологий. Шаринг кода по разным версиям, универсальность и квазиуниверсальность для 8.1. Вообще туда еще нужно кучу всего добавлять. Например парсинг метаданных из аудиопотока. В плане добавить расписание программ, пуш-сообщения, но чето там посоны на сервере никак не прикрутят плагин для МС-пушей.

Летучая
03.11.2016
18:39:58
над свою тачку брать

Admin
ERROR: S client not available

O'Miay
03.11.2016
18:40:11
Вопрос на засыпку: что такое делегат?

Летучая
03.11.2016
18:40:29
ну это кароч типа определение функции
в которую можно напихать кучу других функций

O'Miay
03.11.2016
18:41:05
сигнатура?

Летучая
03.11.2016
18:41:55
типа того
но я тут чуток плаваю тоже

Sergey
03.11.2016
18:42:20
А потом индус героически проебал наработки элопа и мобайл-маркет и я забил

Artem
03.11.2016
18:44:05
Делегат это не сигнатура

O'Miay
03.11.2016
18:44:23

Летучая
03.11.2016
18:44:36
уникальность делегата определяется сигнатурой же, не?

O'Miay
03.11.2016
18:44:54

Sergey
03.11.2016
18:45:09
Кто имеет способности и желание допиливать приложение, а так же отточить свои навыки в UWP и потоковом аудиовещании - можете поучаствовать

Google

Artem
03.11.2016
18:45:38
Да, но это все равно, чо сказать, что указатель на функцию в c++ - это сигнатура

Летучая
03.11.2016
18:45:56
Ты прав
А каким образом например мы присасываемся к делегату?
ну типа принцип работы эвент хэндлеров

Artem
03.11.2016
18:47:10
В смысле присасываемся?

Летучая
03.11.2016
18:47:19
+= -=

O'Miay
03.11.2016
18:47:24
class Program
{
delegate void GetMessage(); // 1. Объявляем делегат
static void Main(string[] args)
{
GetMessage del; // 2. Создаем переменную делегата
if (DateTime.Now.Hour < 12)
{
del = GoodMorning; // 3. Присваиваем этой переменной адрес метода
}
else
{
del = GoodEvening;
}
del.Invoke(); // 4. Вызываем метод
Console.ReadLine();
}
private static void GoodMorning()
{
Console.WriteLine("Good Morning");
}
private static void GoodEvening()
{
Console.WriteLine("Good Evening");
}
}

Artem
03.11.2016
18:48:13
А что тебя интересует? Как там внутри? Хз, какой-нибудь список методов

Alexander
03.11.2016
18:48:17
+= и -= это всего лишь удобный синтаксис
там все круче, чем список методов
там цепочка делегатов
см MulticastDelegate

O'Miay
03.11.2016
18:49:07
Не путайте события с дилигатами
Оно очень схоже, но не то

Alexander
03.11.2016
18:49:30
События - это условно безопасный синтаксис для обертки делегата

Artem
03.11.2016
18:49:30
Это не очень важно

Alexander
03.11.2016
18:49:45
Лол

Летучая
03.11.2016
18:50:01
а делегат — эт просто типизация функции, выходит?

Artem
03.11.2016
18:50:04
Я про цепочку итд

Alexander
03.11.2016
18:50:21
Это важно ровно так же, как и знать как CLR устроена

O'Miay
03.11.2016
18:50:26
Эта группа больше не существует