Pull to refresh
0
0
Василий Тунегов @tunegov

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

Send message

Ускоряем std::shared_mutex в 10 раз

Reading time35 min
Views52K
В этой статье мы детально разберем атомарные операции и барьеры памяти C++11 и генерируемые ими ассемблерные инструкции на процессорах x86_64.

Далее мы покажем как ускорить работу contfree_safe_ptr<std::map> до уровня сложных и оптимизированных lock-free структур данных аналогичных по функциональности std::map<>, например: SkipListMap и BronsonAVLTreeMap из библиотеки libCDS (Concurrent Data Structures library): github.com/khizmax/libcds

И такую многопоточную производительность мы сможем получить для любого вашего изначально потоко-небезопасного класса T используемого как contfree_safe_ptr<T>. Нас интересуют оптимизации повышающие производительность на ~1000%, поэтому мы не будем уделять внимание слабым и сомнительным оптимизациям.
Читать дальше →
Total votes 54: ↑54 and ↓0+54
Comments22

Каких мы ищем разработчиков для разработки платформы 1С: Предприятие

Reading time18 min
Views19K
Наша мечта — делать лучший в мире инструментарий для разработки бизнес-приложений. У нас очень много отличных идей, реализация которых позволяет нам эту мечту осуществлять, развивать наши инструменты, чтобы оставаться лучшими. Ну а чтобы воплощать эти идеи на должном уровне, нам нужны классные программисты.

Если коротко ищем тех, кто:

  • любит (или готов полюбить) делать тиражируемые фреймворки
  • хочет делать продукт, которым пользуются миллионы людей

Чтобы показать детальнее, каких разработчиков мы ищем и как, мы взяли короткие интервью у нанимающих менеджеров нашей компании. Вопросы в ходе интервью задавались такие:

  • Какие вам нужны разработчики?
  • Что спрашиваете на интервью?
  • Какие вопросы предпочитаете на интервью – теоретические или практические?
  • Должен ли программист писать тесты?
  • Задаете ли вопросы не из профессиональной сферы деятельности?
  • Задаете ли логические задачи на сообразительность, не связанные непосредственно с программированием? Типа задачи про шарик с гелием в машине:


В каких областях у нас могут работать программисты в разработке платформы? Ну например:
Total votes 47: ↑15 and ↓32-17
Comments124

Как мы перевели 10 миллионов строк кода C++ на стандарт C++14 (а потом и на C++17)

Reading time7 min
Views49K
Некоторое время назад (осенью 2016), при разработке очередной версии технологической платформы 1С:Предприятие внутри команды разработки встал вопрос о поддержке нового стандарта C++14 в нашем коде. Переход на новый стандарт, как мы предполагали, позволил бы нам писать многие вещи элегантней, проще и надежней, упрощал поддержку и сопровождение кода. И в переводе вроде бы нет ничего экстраординарного, если бы не масштабы кодовой базы и специфические особенности нашего кода.

Для тех кто не знает, 1С:Предприятие – это среда для быстрой разработки кросс-платформенных бизнес-приложений и runtime для их выполнения в разных ОС и СУБД. В общих чертах в состав продукта входят:


Мы стараемся по максимуму писать один код для разных ОС — кодовая база сервера общая на 99%, клиента — примерно на 95%. Технологическая платформа 1С:Предприятие преимущественно написана на C++ и ниже приведены приблизительные характеристики кода:

  • 10 миллионов строк С++ кода,
  • 14 тысяч файлов,
  • 60 тысяч классов,
  • полмиллиона методов.

И все это хозяйство надо было перевести на C++14. О том, как мы это делали и с чем столкнулись в процессе, мы сегодня и расскажем.

image
Читать дальше →
Total votes 76: ↑74 and ↓2+72
Comments171

Как мы решаем «Что делать?»

Reading time11 min
Views18K
В статье ответим только на один вопрос – как мы решаем, что и когда реализовывать в платформе «1С:Предприятие».

Именно в такой формулировке нам его задают редко, но часто и даже очень часто появляются конкретные вопросы – «почему вы сделали это?», «почему вы НЕ сделали это?», «почему бы вам не сделать это?», «когда вы сделаете это?», «когда же вы, наконец, сделаете это?!!!», …

Попробуем описать то, как мы решаем, что когда делать.


Читать дальше →
Total votes 18: ↑14 and ↓4+10
Comments24

Платформа «1С: Предприятие» — что под капотом?

Reading time7 min
Views101K
Привет, Хабр!
В этой статье мы начнем рассказ о том, как устроена внутри платформа «1С:Предприятие 8» и какие технологии используются при ее разработке.

image

Почему мы считаем, что это интересно? Во-первых, потому что платформа «1С:Предприятие 8» — это большое (более 10 миллионов строк кода) приложение на C++ (клиент, сервер и т.д.), JavaScript (веб-клиент), и, с недавних пор еще и Java. Большие проекты бывают интересны хотя бы в силу масштаба, ведь вопросы, незаметные в маленькой кодовой базе, в таких проектах встают в полный рост. Во-вторых, «1С:Предприятие» — это тиражируемый, «коробочный» продукт, а статей про такие разработки на Хабре совсем немного. А еще всегда интересно узнать, как там живут в других командах и фирмах.
Читать дальше →
Total votes 31: ↑24 and ↓7+17
Comments160

Партнерский семинар «1С» – впервые не только для партнеров

Reading time2 min
Views10K
image

В комментариях к предыдущей статье участники Хабра хотели большей открытости нашей компании для разработчиков. Мы работаем над этим. Позвольте напомнить, что на ближайшем партнерском семинаре 1С мы делаем целый день, 4 октября, Открытым воскресеньем для всех, кому интересны наши технологии и решения, а не только для партнеров фирмы «1С».
Читать дальше →
Total votes 21: ↑13 and ↓8+5
Comments18

И снова про 1С

Reading time18 min
Views67K
image
Последнее время на Хабре стали все чаще появляться статьи, посвященные 1С как среде разработки приложений. Статьи по смыслу более концептуальные, чем прикладные; авторы делают обзор платформы «1C:Предприятие 8» в целом, пытаются понять, хороша или плоха технология создания бизнес-приложений, предлагаемая 1С.

Не буду обсуждать, прав ли каждый из авторов или нет; у платформы 1С, как у любой технологии, есть свои преимущества и недостатки. А есть и свои интересные особенности, свои наработки и механизмы. Вот о них и хочется поговорить. А еще — хочется написать статью про 1С для людей, с 1С незнакомых, статью, которая показывает, какое место 1С занимает в ряду аналогичных программных продуктов. Мне лично такой ознакомительной обзорной статьи очень не хватало, когда я еще не был знаком с 1С, но был знаком с рядом других ERP продуктов.

Итак, начнем!
Читать дальше →
Total votes 36: ↑22 and ↓14+8
Comments160

Профилирование уже запущенных программ

Reading time6 min
Views35K
Все мы пользуемся профайлерами. Традиционная схема работы с ними такова, что приходится изначально запускать программу «под профайлером» а затем, после окончания ее работы, анализировать сырой дамп с помощью дополнительных утилит.
А что делать если мы не имея root'а хотим запрофилировать уже работающую программу, которая долго работала «как надо», а сейчас что-то пошло не так. И хотим это сделать быстро. Знакомая ситуация?
Тогда рассмотрим наиболее популярные профайлеры и принципы их работы. А затем профайлер, который решает именно указанную задачу.

Читать дальше →
Total votes 41: ↑38 and ↓3+35
Comments7

Information

Rating
Does not participate
Registered
Activity