Pull to refresh
-2
Тимур@Timofeuz

Типа программист

0,1
Rating
Send message

Микрософт совершила большую ошибку в своё время, что для выбрала закрытый формат.

По-моему здесь же на хабре была статья об экселе, вкратце формат был придуман скорее для быстродействия на тогдашних слабых машинках.

На coursere есть Nand2Tetris, только там всё виртуально.

Хосподя, как видать бомбит у автора, что аж кушать не может и написал целую статью с натягиванием совы своего случая на обобщение ряда людей.

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

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

foreach (var i in 1..5)

Console.Write(i);

(выводит 12345)

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

Раз пошла тема про интернирование, вытащу вопрос со 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 работали как я предполагал.

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

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

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

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

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

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

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

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

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

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

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

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

Information

Rating
3,723-rd
Location
Ташкент, Ташкентская обл., Узбекистан
Registered
Activity