Здравствуйте, Ночной Смотрящий, Вы писали:
НС> НС>> H>Ну как бы вот: НС> НС>> H>
Во-вторых, я на стажировке в команде Windows Phone, начиная с января
НС> H>На случай сомнений в осведомленности источника.
НС> Осведомленности в чем? То что он там где то стажировался еще не значит, что он понимает что пишет.
В том, что у сервелата бэкенд нативный.
НС> H>Судя по этому, яйца мешают не только андроиду.
НС> Там нет ничего про дерганье анимации. Там только про то, что genGC быстрее.
Не тормози. Это было ответом на слова:
Только вот весь прикладной код, включая UI, там managed. И GC работает в полный рост.
и там, в частности, говорится о:
Existing apps and games even without any changes can expect faster startup, faster level loads and reduction in gameplay stutters due to collection.
ну и предложение попрыгать вокруг GC:
Developers can specifically optimize for the new generational GC to completely remove stutters during animations and game play that came due to these GC pauses.
, что приложение WPF медленно стартует из-за сборщика мусора. Как видишь, профайлер показал ничтожную роль GC во всем этом буйстве Managed-кода. Я к чему: то, что кто-то считает, что тормоза из-за сборщика, далеко не всегда означает, что они (тормоза) действительно из-за него.
Здравствуйте, Ночной Смотрящий, Вы писали:
C>>В серверных приложениях, тем не менее, многопоточность очень хорошо разграничивается и вся сложность сегрегируется в отдельные модули: базы данных, кэщи и т.п. НС>Хоть обсегрегируйся. Если по задаче нужны расшариваемые данные, то то дедлоки потенциально будут. Есть в коде блокировки (а они в серверном коде есть и в немалых количествах), значит есть и опасность дедлоков.
Видимо, это тлетворное влияние MSSQL такое. Не помню, чтобы у меня когда-то вообще были проблемы с дедлоками.
C>>И таких неявных связей тонны. НС>В любом параллельном коде таких связей тонны.
Ты пишешь говнопараллельный код, значит.
, что приложение WPF медленно стартует из-за сборщика мусора. Как видишь, профайлер показал ничтожную роль GC во всем этом буйстве Managed-кода. Я к чему: то, что кто-то считает, что тормоза из-за сборщика, далеко не всегда означает, что они (тормоза) действительно из-за него.
Ты ссылку на мсдн-блог читал? Там весьма доходчиво говорится о паузах из-за GC. К чему ты тут упомянул WPF мне не понятно
Здравствуйте, hattab, Вы писали:
H>Ты ссылку на мсдн-блог читал? Там весьма доходчиво говорится о паузах из-за GC. К чему ты тут упомянул WPF мне не понятно
Есть в моем посте такое предложение, так и начинается "к чему я это". Поясню еще разок. То, что некоторые, как на Хабре, сразу начинают обвинять во всех бедах GC, не означает, что это действительно так. Это такой совет. Managed — не натив, в нем без серьезного опыта и профайлера далеко не всегда можно делать верные предположения.
Здравствуйте, MxMsk, Вы писали:
MM> H>Ты ссылку на мсдн-блог читал? Там весьма доходчиво говорится о паузах из-за GC. К чему ты тут упомянул WPF мне не понятно
MM> Есть в моем посте такое предложение, так и начинается "к чему я это". Поясню еще разок. То, что некоторые, как на Хабре, сразу начинают обвинять во всех бедах GC, не означает, что это действительно так. Это такой совет. Managed — не натив, в нем без серьезного опыта и профайлера далеко не всегда можно делать верные предположения.
I am a developer in the .NET Compact Framework (NETCF) team and work on the execution engine. NETCF is the core runtime behind Windows Phone 7 series, XNA (on Xbox360), Silverlight for Nokia S60 and other Windows CE powered devices.
Ну да, откуда бы ему знать о действительном положении дел с GC Может и мне чего-нибудь тебе посоветовать...
Здравствуйте, hattab, Вы писали:
H>Ну да, откуда бы ему знать о действительном положении дел с GC Может и мне чего-нибудь тебе посоветовать...
Ты прав. Извини, что потратил твое время. Впредь я этого делать не буду.
Здравствуйте, Ночной Смотрящий, Вы писали:
C>>Видимо, это тлетворное влияние MSSQL такое. НС>При чем тут MSSQL?
Раз про дедлоки говоришь.
C>> Не помню, чтобы у меня когда-то вообще были проблемы с дедлоками. НС>У меня тоже не было. А на десктопе были?
Были, когда интегрировал HTMLayout и SWING — у них две независимые очереди событий.
НС>>>В любом параллельном коде таких связей тонны. C>>Ты пишешь говнопараллельный код, значит. НС>У меня проблем нет, это у тебя проблемы на десктопе. Значит говнокод пишешь ты.
А так же авторы GUI-библиотек. И таки да — он очень непараллельный и непонятно как его нормально сделать таким.
В моём примере — как ты будешь делать так, чтобы код работал нормально без дедлоков?
Здравствуйте, Cyberax, Вы писали:
C>>>Видимо, это тлетворное влияние MSSQL такое. НС>>При чем тут MSSQL? C>Раз про дедлоки говоришь.
Странная логика.
НС>>У меня проблем нет, это у тебя проблемы на десктопе. Значит говнокод пишешь ты. C>А так же авторы GUI-библиотек. И таки да — он очень непараллельный и непонятно как его нормально сделать таким. C>В моём примере — как ты будешь делать так, чтобы код работал нормально без дедлоков?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>>>У меня проблем нет, это у тебя проблемы на десктопе. Значит говнокод пишешь ты. C>>А так же авторы GUI-библиотек. И таки да — он очень непараллельный и непонятно как его нормально сделать таким. C>>В моём примере — как ты будешь делать так, чтобы код работал нормально без дедлоков? НС>В твоем — без понятия.
Ну вот и все того же мнения.
Пока что многопоточность в GUI используется в очень ограниченных контекстах. В принципе, выполнение заранее подготовленной анимации, которая гарантировано не требует повторного рендеринга или каких-то других взаимодействий с основным потоком — это хороший пример. Но очень ограниченный.
Здравствуйте, Cyberax, Вы писали:
C>Пока что многопоточность в GUI используется в очень ограниченных контекстах.
Ну это у кого как. У меня в одном из проектов, к примеру, применяется очень активно. И ни одного дедлока, что характерно, за много лет и кучи кода, написанного не самыми квалифицированными прикладниками. Зато проблем с однопоточностью гуйных библиотек — хватает.
C> В принципе, выполнение заранее подготовленной анимации, которая гарантировано не требует повторного рендеринга или каких-то других взаимодействий с основным потоком — это хороший пример.
Анимация меня не особо волнует, мне куда больше интересна интеграция всяческих долгоиграющих процессов с UI без танцев с бубном вокруг однопоточного гуя.
Здравствуйте, Ночной Смотрящий, Вы писали:
C>> В принципе, выполнение заранее подготовленной анимации, которая гарантировано не требует повторного рендеринга или каких-то других взаимодействий с основным потоком — это хороший пример. НС>Анимация меня не особо волнует, мне куда больше интересна интеграция всяческих долгоиграющих процессов с UI без танцев с бубном вокруг однопоточного гуя.
Так какие проблемы? Это задача решена сто лет назад уже. Просто постим в очередь GUI сообщений замыкания, обновляющие состояние GUI.
Здравствуйте, Cyberax, Вы писали:
НС>>Анимация меня не особо волнует, мне куда больше интересна интеграция всяческих долгоиграющих процессов с UI без танцев с бубном вокруг однопоточного гуя. C>Так какие проблемы?
С синхронизацией проблемы.
C> Это задача решена сто лет назад уже.
Хорошо эта задача пока не решена. С релизом C#5 кое какие подвижки планируются, будем посмотреть. А пока куча дурного рукопашного кода.
C> Просто постим в очередь GUI сообщений замыкания, обновляющие состояние GUI.
Здравствуйте, Ночной Смотрящий, Вы писали:
C>> Это задача решена сто лет назад уже. НС>Хорошо эта задача пока не решена. С релизом C#5 кое какие подвижки планируются, будем посмотреть. А пока куча дурного рукопашного кода.
Я в SWING уже сто лет делаю так:
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
updateUIProgress();
}
})
В остальных GUI-фреймворках абсолютно аналогично.
C>> Просто постим в очередь GUI сообщений замыкания, обновляющие состояние GUI. НС>Ага, и засираем этими постингами кучу кода.
С лямбдами? Оверхед в полстрочки.
Здравствуйте, Mamut, Вы писали:
M>Блин, я же знад, что тормоза, которые я ощущаю в Андроиде, не являются воображаемыми:
M>http://habrahabr.ru/blogs/android_development/134172/
M>Android UI никогда не будет совершенно плавным из-за...
Купил тут себе HTC Desire S. Никаких тормозов. Все гладко, красиво и быстро.
Как мне воспроизвести тормоза на моем Desire S? Или услышать от тебя хотя бы раз в жизни фразу "Я был неправ."?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
M>>http://habrahabr.ru/blogs/android_development/134172/ M>>Android UI никогда не будет совершенно плавным из-за... VD>Купил тут себе HTC Desire S. Никаких тормозов. Все гладко, красиво и быстро.
Не такая хорошая плавность по сравнению с iPhone'ом всё-таки заметна, если положить их рядом и нагрузить Android хорошей такой фоновой службой, жрущей процессор.
Здравствуйте, Cyberax, Вы писали:
C>Не такая хорошая плавность по сравнению с iPhone'ом всё-таки заметна, если положить их рядом и нагрузить Android хорошей такой фоновой службой, жрущей процессор.
Меня то не надо уговаривать. У меня телефон в руках. А жрущие процессор службы мне как-то не нужны.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.