[Link] Визуализация работы разных режимов GC
От: SergeyT. США http://sergeyteplyakov.blogspot.com/
Дата: 05.01.17 05:41
Оценка: 236 (11)
Камрады и представители прекрасной части,

Я тут, недавно, завел бложик на английском на blogs.msdn.microsoft.com завел, так что не обессудьте за небольшую рекламу.

Есть уже пара постов и последний, посвещен разным режимам сборки мусора и тому, как смена одного на другой может принести 30% уменьшения end-to-end времени работы консольной утилиты. Собственно, сам пост: Understanding different GC modes with Concurrency Visualizer.

З.Ы. Пожелания, предложения и всяческие комментарии, всецело приветствуются
Отредактировано 09.01.2017 18:45 SergeyT. . Предыдущая версия . Еще …
Отредактировано 05.01.2017 6:02 AndrewVK . Предыдущая версия .
gc минутка хардкора
Re: [Link] Визуализация работы разных режимов GC
От: Sinix  
Дата: 09.01.17 12:41
Оценка:
Здравствуйте, SergeyT., Вы писали:

ST>Есть уже пара постов и последний, посвещен разным режимам сборки мусора и тому, как смена одного на другой может принести 30% уменьшения end-to-end времени работы консольной утилиты. Собственно, сам пост: Understanding different GC modes with Concurrency Visualizer.




Плиз, навесь тег "Минутка хардкора", чтобы не потерялось

Кстати, а ErrorProne.Net ещё живой? Время от времени натыкаюсь на забавные ошибки в реальном коде, аля
class A
{
  const int Default = 1;
  int field;

  public A() { }
  public A(int value) { field = value; }

  public int PropertyA => field = Default; // <==
}

которые хорошо бы ловить аналайзером. Если надо — могу подкидывать в issues.
Re[2]: [Link] Визуализация работы разных режимов GC
От: SergeyT. США http://sergeyteplyakov.blogspot.com/
Дата: 09.01.17 18:46
Оценка:
Здравствуйте, Sinix, Вы писали:

S>


Thanks!

S>Плиз, навесь тег "Минутка хардкора", чтобы не потерялось


Навесил.

S>Кстати, а ErrorProne.Net ещё живой? Время от времени натыкаюсь на забавные ошибки в реальном коде, аля

S>
S>class A
S>{
S>  const int Default = 1;
S>  int field;

S>  public A() { }
S>  public A(int value) { field = value; }

S>  public int PropertyA => field = Default; // <==
S>}
S>

S>которые хорошо бы ловить аналайзером. Если надо — могу подкидывать в issues.

Нужна мотивация, так что добавляй, сделаю!
Re[3]: [Link] Визуализация работы разных режимов GC
От: Sinix  
Дата: 09.01.17 19:03
Оценка:
Здравствуйте, SergeyT., Вы писали:

ST>Нужна мотивация, так что добавляй, сделаю!


Ок, пошарю по закромам. Что-то такое было, ещё более жизненное.
Re[4]: [Link] Визуализация работы разных режимов GC
От: SergeyT. США http://sergeyteplyakov.blogspot.com/
Дата: 09.01.17 19:53
Оценка: +1
Здравствуйте, Sinix, Вы писали:

S>Здравствуйте, SergeyT., Вы писали:


ST>>Нужна мотивация, так что добавляй, сделаю!


S>Ок, пошарю по закромам. Что-то такое было, ещё более жизненное.


Из интересного (для меня):
* ReadOnly свойства. Позволяют инициализировать в Object Initialization выражениях, но не дают менять их после конструирования
(я лично устал от того, что мне нужно выбирать: толпа аргументов в конструкторе или неизменяемость. Понимаю, что эта штука будет работать
только при наличии анилизатора, но я с этим готов мириться).
* Для C# 7 можно ругаться, если есть локальная функция, которая захватывает аргумент и в этом же методе есть анонимный метод, захватывающий что-то еще.
Похожий анализ делает R# и говорит, что у нас есть неявно захваченная переменная, но в данном случае — это просто удлинение времени жизни,
но и изменение генерируемого кода: мы начинаем аллоцировать в куче.
* Можно ругаться на ассерты, которые используют интерполяцию строк (это по мотивам одного из твоих сообщений).

Поговорю с коллегами, может они чего-нить посоветуют.
Re[5]: [Link] Визуализация работы разных режимов GC
От: Sinix  
Дата: 09.01.17 20:05
Оценка:
Здравствуйте, SergeyT., Вы писали:

ST>Поговорю с коллегами, может они чего-нить посоветуют.


Как минимум надо сюда прописаться.

Из "фиг заметишь" я бы добавил проверки на перегрузки типа таких
Автор: Sharov
Дата: 04.10.16
+ проверки на инлайнинг для методов с вызовами в стиле.GetCalling()
Автор: Sinix
Дата: 18.07.16
.

Всякие неочевидности из реального кода я вот сюда складываю, но вроде бы там ничего нет достойного отдельного аналайзера.
Re[5]: [Link] Визуализация работы разных режимов GC
От: Sinix  
Дата: 16.01.17 11:07
Оценка:
Здравствуйте, SergeyT., Вы писали:

ST>Поговорю с коллегами, может они чего-нить посоветуют.


И ещё тема в копилку
Автор: SanyaVB
Дата: 12.01.17
. Конкретно, сообщение
Автор: Lexey
Дата: 16.01.17
от ув. Lexey — ошибка реально встречается, однако.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.