Как стать автором
Обновить
0
Карма
0
Рейтинг

Пользователь

  • Подписчики
  • Подписки

Как написать FizzBuzz на собеседовании

Что-то на эльфийском, не могу прочесть.

Ускоряем цикл foreach до for

Всем, где нумеруют индексы с нуля.

Ускоряем цикл foreach до for

foreach (var i in 1..5)

Console.Write(i);

(выводит 12345)

Каноничней выводить 1234.

Подводные камни в бассейне строк, или ещё один повод подумать перед интернированием экземпляров класса String в C#

Раз пошла тема про интернирование, вытащу вопрос со SO, который появился у меня недавно. Я баловался со строками и заметил разницу в поведении памяти при интернировании. Если коротко, то генерировал много строк из ограниченного набора символов. В net.core 3.1 размер кучи почему-то не уменьшался после сборки мусора, если количество строк (размер в памяти?) была больше определенного значения.

Код
class Program
{
    public static void Main(string[] args)
    {
        long memory = GC.GetGCMemoryInfo().HeapSizeBytes;
        Console.WriteLine(memory);

        Get10MillionStringsInterned();

        memory = GC.GetGCMemoryInfo().HeapSizeBytes;
        Console.WriteLine(memory);

        GC.Collect();

        memory = GC.GetGCMemoryInfo().HeapSizeBytes;
        Console.WriteLine(memory);

        memory = GC.GetTotalMemory(true);
        Console.WriteLine(memory);

        Console.ReadKey();
    }

    static void Get10MillionStringsInterned()
    {
        var chars = new char[] { 'a', 'b', 'c',  };
        char[] word = new char[4];
        Random r = new Random();
        string[] strings = new string[10_000_000];

        for (int i = 0; i < strings.Length; i++)
        {
            for (int j = 0; j < word.Length; j++)
            {
                word[j] = chars[r.Next(chars.Length)];
            }

            strings[i] = string.Intern(new string(word));
        }
        Console.WriteLine(strings[r.Next(strings.Length)]);
    }
}


Вывод консоли
0
aabb 
80082696 
77312    <-- Heap size
76480

Разница, если малость прибавить символов в массив chars:
0
badb
80092448
80086896 <-- Heap size
86200


А .net Framework и 5.0 работали как я предполагал.

Популярные заблуждения о C#

Плюс JIT может тупо оптимизировать struct в значение регистра.

У Google появился новый креативный способ убивать SaaS-стартапы

А каковы перспективы зафиксировать убыток и подать иск к гуглу?

Черная дыра прокрастинации: о чем не пишут в других статьях, и что на самом деле важнее всего

Картинка не до конца честна. На первом шаге один процент от 1.01, а на последнем от 37.4

Что нового в C# 9.0

Можно теперь написать
foreach (int i in 0..n);
если энумератор к range прикрутить.

Google не узнает, что вы делали прошлым летом (ну почти)

Имхо, справедливо давать провайдерам сервисов возможность показа рекламы, если ты за них не платишь. Я когда-то тоже болел этой хренью с облегчением, кастомизацией и т.п., но давно забил. Даже адблок не ставлю несколько лет. Разницы как-то не ощущаю.

Dial-up развлекушки

В Узбекистане многие первые терминалы оплаты пластиковых карт подключались по диал-ап для транзакций. Интернеты были далеко не везде.

Лучший в своем классе: история появления стандарта шифрования AES

Люди делятся на тех, кто еще не делает бекапы и тех, кто уже делает. (с)

Главная причина, почему все-таки Linux

У вас хоть МС что-то выпустила. Я вот приобрел ноут с win8.1, по привычке назвал юзера юзером и жил спокойно, пока не стал просыпаться по ночам от шума вентилятора. Проблема и решение оказались неожиданными.

Коронавирус: опасная иллюзия смертности

Автор вставил в пост некоторые картинки из итальянского отчета (или хз откуда), но «любезно» пропустил те, которые идут вразрез с его точкой зрения.

Изменение общей смертности (мужчины и женщины)
image

График (Север и Центр-Юг)
1

Другие интересные картинки можно накликать здесь — www.epiprev.it
Краткая версия отчета — www.salute.gov.it/portale/caldo/SISMG_sintesi_ULTIMO.pdf (выходят новые, этот могут удалить)

В общем креатив г; автор — м, причём опасный м.

Информация

В рейтинге
Не участвует
Откуда
Ташкент, Ташкентская обл., Узбекистан
Зарегистрирован
Активность