Обновить
4
0
Иван@iushakov

Программист

Отправить сообщение
А любвеобильного TL уже уволили?
image
Электронный вариант книги планируется?
Не только. Crossover не снижает часовую ставку в зависимости от места проживания, и всегда платит то, на что человек прошел.
Изменилось, конечно. Одно дело стоять у доски с маркером и решать задачу под пристальным взглядом одного или двух человек, а совсем другое сидеть в любимом кресле и писать код задачи в редакторе.
Некоторые компании (Amazon, Facebook) перешли на формат Virtual On Site и перестали возить на очное собеседование. На LeetCode пишут что некоторые уже прошли такие собеседования, вроде даже получили предложения о работе.
Почему был выбран Unity, а не Unigine?
Вот версия на 5.7 секунд — gist.github.com/ivan-ushakov/ee8257e5bb3e8c872f2f07c712e76972. Свел вызовы dynamicCast к минимуму.
Это для какой версии macOS и Swift? У меня вот так (https://habrastorage.org/webt/tk/4e/ji/tk4ejimhubxqfrilanvyrje_rlm.png), правда я исправлял несколько проблем.
1) Буферизованное посимвольное чтение файла, потоковый парсинг и выделение объектов из массива.

Если в случае Rust это видимо так, то в случае Swift никакого буфера для чтения не используется. Мало того, на каждый вызов чтения вы создаете новый Data объект.
Если это заменить на InputStream, то становится 13 секунд (https://gist.github.com/ivan-ushakov/65ad074216e33f222b6a572069e4e8f5). Это по прежнему много, но тут проблема в том что текущий парсер JSON не сохраняет информацию о типе при разборе, и вынуждает использовать as? для логики, что выливается в _dynamicCastFromExistential, который занимает много времени, судя по отчету Time Profiler.
Еще не очень корректно сравнивать язык с постоянным ARC, и язык где ARC можно использовать только когда он нужен. В вашем коде Swift почти не предпринято усилий по минимизации создания объектов в куче.
2

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность