Pull to refresh
89
0

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

Send message

Визуализация результатов escape-анализа в VS Code

Level of difficultyMedium
Reading time8 min
Views2.6K

В Go есть возможность получить отчёт о выполняемом escape-анализе: go build -gcflags '-m=3 -l'. В этой статье я расскажу, как можно визуализировать этот отчёт в VS Code. Дополнительно приведу способ, как в несколько кликов проверить теорию (escape-анализ) практикой (профилирование).


Читать дальше →
Total votes 12: ↑10 and ↓2+11
Comments0

От Isolation к Consistency — дорога длиной в 30 лет

Reading time17 min
Views7.9K

Участвую в стартапе, в котором разрабатывается СУБД нового типа (работает поверх некоторых kv-движков, кардинально расширяя их возможности, про это немного можно прочитать здесь). Для того, чтобы сравнить то, что понемногу получается, с тем, что имеется в индустрии, пришлось на глубоком уровне проработать первоисточники по темам Isolation и Consistency (уточню, что имеется ввиду не та Consistency, что в ACID). Обнаружил интересные нюансы, которые и излагаю в этой статье.


Тезисно:


  • Термин Phantom Read является продуктом испорченного телефона
  • Смысл понятий Lost Update, Write Skew и Read Skew для разделения уровней изоляций неочевиден и относителен
  • Движок, который обеспечивает уровень изоляции Serializable, в распределённом мире может вести себя весьма причудливо, например, всегда возвращать пустой результат для read-only транзакций — и ему за это по стандарту "ничего не будет"
  • Strong consistency в Cosmos DB — предел мечтаний? (спойлер: нет)

Ну, и ещё кое-что по мелочи. В конце рассмотрим вот такой венец творения человеческого разума:


Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments25

Go против Rust — производительность вне конкуренции

Reading time5 min
Views51K

В статье Наблюдение за выполнением конкурирующих задач в Go и Rust коллега cpmonster привёл весьма интересные результаты:


Программа на Rust показала намного большую производительность при вычислении членов возвратной последовательности, чем программа на Go: 367 млн. итераций в секунду против 44 млн.

Ну, в 1.5 раза… Ну, в 2 раза… Но семь гвардейцев за два дня? — это слишком, тем более что тут "гвардейцев" больше восьми!


Или нет, не слишком? В общем, потенциал любопытства пересилил другие потенциалы и я провёл своё исследование.

Читать дальше →
Total votes 84: ↑82 and ↓2+103
Comments110

Заменяем глобальный аллокатор в Rust

Reading time11 min
Views7.5K

Вторая часть про работу с кучей, устанавливаем свой глобальный аллокатор. В принципе, это делается в несколько строк, но наша цель — действовать сознательно и профессионально, с глубоким проникновением в суть явлений, так что легкой жизни не будет (как и обещал).


Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments6

Работа с кучей в Rust

Reading time4 min
Views8K

Продолжаем изучать Rust нетрадиционным способом. В этом раз будем разбираться в нюансах работы с кучей, для их понимания понадобятся: сырые указатели, выделение памяти в куче, размер экземпляра типа, запись значений в кучу и чтение из нее, const и static, unit-like структуры, переопределение глобального аллокатора.


Это, определенно, overkill для одной статьи, а вот половину списка вполне можно освоить.


Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments9

Конспектируем Книгу Rust:: Времена и структуры

Reading time8 min
Views5.4K

Продолжаем работать с 10.3.


КМБ.- Двойная жизнь.- Восстание мертвецов.- Ошибка в документации.- Ужасающие подробности из The Rustonomicon.- Архитектурные озарения.- Развязка.


Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments2

Конспектируем Книгу Rust:: Владение

Reading time8 min
Views16K

Перед вами краткое профессиональное описание особенностей языка Rust для профессионалов.


Что это такое?
  • краткое — информации будет гораздо меньше, чем в Книге (The Rust Programming Language)
  • профессиональное — информации будет гораздо больше, чем в Книге;
  • описание особенностей — фокусируемся на отличиях Rust от других языков;
  • языка — описывается именно язык, а не установка средств разработки, управление пакетами и прочий инструментарий;
  • для профессионалов — подразумевается, что читатель имеет существенный опыт в разработке ПО.

Чего здесь НЕ будет


  • Не будет агитации за Rust
  • Не будет легко. Для освоения потребуется неделя-другая вдумчивого чтения по часу в день, с тщательным разбором примеров, как-то так

Содержание


Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments7

Велосипед, зима и Санкт-Петербург — настало время сказочных историй

Reading time7 min
Views13K

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

Колданем?
Total votes 25: ↑22 and ↓3+30
Comments398

Охота за убегающей памятью в Go на этапе разработки

Reading time5 min
Views8.2K

В начале этого года я прочитал на habr любопытную статью "Почему Discord переходит с Go на Rust", переход был связан с неэффективным механизмом сборки мусора в Go. Тогда подумалось, что, наверное, было бы проще доработать приложение и не переходить. Но еще проще было бы избежать таких проблем на стадии разработки.

Читать далее
Total votes 11: ↑9 and ↓2+13
Comments6

Как научиться кататься на моноколесе?

Reading time9 min
Views29K


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

Марк Твен. Укрощение велосипеда
Читать дальше →
Total votes 23: ↑20 and ↓3+31
Comments114

Выбор моноколеса для поездок на работу

Reading time6 min
Views41K


Автор рисунка — Дед62@electrotransport.ru

Прошла весна, настало лето, –
Так не пора ли сделать это?

Или еще не пора? А если пора, то какое выбрать моноколесо для поездок на работу?
Total votes 39: ↑37 and ↓2+35
Comments135

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity