[Этюд] Минутка WTF-3: троллим любителей var
От: Sinix  
Дата: 02.04.16 08:26
Оценка: 26 (5)
Нет покоя шибанутым
Автор: Sinix
Дата: 31.03.16


    var s = "Hello"; // GetSomeString();
    var len= s?.Length;
    var maxLen = 5;
    var result = maxLen.CompareTo(len);

    ...


Что не так-то?
Как всегда, с цыферками пожалуйста.

Отредактировано 07.01.2017 16:48 Sinix . Предыдущая версия .
минутка wtf
Re: [Этюд] Минутка WTF-3: троллим любителей var
От: rameel https://github.com/rsdn/CodeJam
Дата: 02.04.16 09:38
Оценка: 58 (2)
Здравствуйте, Sinix, Вы писали:

S>Что не так-то?


  Спойлер
Навскидку, боксинг.


S>Как всегда, с цыферками пожалуйста.


Минуточку... вот

Repeat: 10 000 000
------------------
 Original: Elapsed: 545 ms, GC 0/1/2: 57/0/0
Optimized: Elapsed:  11 ms, GC 0/1/2:  0/0/0


  Спойлер
Все верно, боксинг вызван тем, что используется перегрузка int.CompareTo(object).

PS.

Во втором варианте использовался вот такой код: maxLen.CompareTo(len.HasValue ? len.Value : 0)
Если же использовать вот такой: maxLen.CompareTo(len.GetValueOrDefault()) то время уже 4-5 ms
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Отредактировано 02.04.2016 9:45 rameel . Предыдущая версия .
Re: [Этюд] Минутка WTF-3: троллим любителей var
От: rameel https://github.com/rsdn/CodeJam
Дата: 02.04.16 10:01
Оценка: 94 (2) +2 :)
Здравствуйте, Sinix, Вы писали:

А вообще тему стоило назвать по другому: троллим любителей писать в нотепаде

Потому как только вбив код в студию, соответствующее место было подчеркнуто maxLen.CompareTo(len) с сообщением: Boxing allocation: Conversion from value type 'int?' to reference type 'object'

ЗЫ. Плагин называется Heap Allocations Viewer
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[2]: [Этюд] Минутка WTF-3: троллим любителей var
От: Sinix  
Дата: 02.04.16 10:13
Оценка:
Здравствуйте, rameel, Вы писали:

R>Если же использовать вот такой: ...

А померь ещё с Comparer<int?> плиз. Интересно насколько результаты совпадать будут.


R>ЗЫ. Плагин называется Heap Allocations Viewer


Ух ты, уже отвечают раньше, чем дополнительный вопрос задам
Ок, раз интерес есть, буду новые примеры периодически скидывать.
Отредактировано 02.04.2016 10:14 Sinix . Предыдущая версия .
Re[3]: [Этюд] Минутка WTF-3: троллим любителей var
От: rameel https://github.com/rsdn/CodeJam
Дата: 02.04.16 10:21
Оценка: 13 (1)
Здравствуйте, Sinix, Вы писали:

S>А померь ещё с Comparer<int?> плиз. Интересно насколько результаты совпадать будут.


Repeat: 10 000 000
------------------
      Original: Elapsed: 531 ms, GC 0/1/2: 57/0/0
     Optimized: Elapsed:  12 ms, GC 0/1/2:  0/0/0
Comparer<int?>: Elapsed:  65 ms, GC 0/1/2:  0/0/0
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.