Search
Write a publication
Pull to refresh
88
0
Вячеслав Шапилов @SHVV

User

Send message

Шустрый, удобный и кроссплатформенный профилировщик C++ кода

Reading time6 min
Views32K
Всем привет. Несколько месяцев назад мы вместе с victorzs решили сделать простой и удобный профилировщик c++ кода (подразумевается профилирование времени исполнения участков кода, функций).


Скриншот профилирования примера из SDK CryEngine

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

  • Профилировать выбранные участки кода
  • Работать на нескольких платформах
  • Учитывать переключение контекста
  • Требовать минимальных дополнительных затрат памяти во время профилирования
  • Не накладывать дополнительных временных ограничений во время выполнения приложения. Согласитесь, если профилировщик будет работать дольше, чем профилиуремый кусочек кода, то можно сделать некорректные выводы.

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

Если вы хотите знать, сколько времени работает ваш код, и иметь при этом объективные доказательства — прошу под кат, где я покажу, как использовать профилировщик.
Читать дальше →

Ещё немного про телефоны Xiaomi и борьбу с ними. Updated

Reading time11 min
Views363K
image

Честно признаться, у меня не было планов писать и публиковать эту статью, но, после того, как за два месяца увидел в ближнем кругу коллег 5 штук свежеприобретённых телефонов от Xiaomi, и недавнюю статью на Geektimes, рекламирующую управление умным домом от Xiaomi, ко мне пришла совесть и, сцуко, потребовала поделиться знанием с остальными.
Читать дальше →

Красота рендеринга игровых кадров: Краткий обзор инструментов + Интересное видео

Reading time5 min
Views20K
Пытливость ума и желание знать как все работает изнутри выделяет технаря из массы пользователей. В этом небольшом посте я бы хотел поделиться с любознательным сообществом небольшими роликами и кратким рецептом использования профилирующего софта для 3D приложений.


Кому любопытно, прошу пройти

Ищем и скачиваем непопулярные и старые файлы в интернете

Reading time14 min
Views214K
Преимущественно медиафайлы. На полном серьезе, без шуток.

Введение

Бывает, случается так, что вы хотите скачать альбом 2007 года исполнителя, который кроме вас известен 3.5 людям, какой-нибудь испанский ска-панк или малопопулярный спидкор европейского происхождения. Находите BitTorrent-раздачу, ставите на закачку, быстро скачиваете 14.7%, и… все. Проходит день, неделя, месяц, а процент скачанного не увеличивается. Вы ищете этот альбом в поисковике, натыкаетесь на форумы, показывающие ссылки только после регистрации и 5 написанных сообщений, регистрируетесь, флудите в мертвых темах, вам открываются ссылки на файлообменники вроде rapidshare и megaupload, которые уже сто лет как умерли.

Попытка скачать хотя бы один файл
Увы, частая ситуация в попытке хоть что-то скачать

Такое случается. В последнее время, к сожалению, случается чаще: правообладатели и правоохранительные органы всерьез взялись за файлообмен; в прошлом году закрылись или были закрыты KickassTorrents, BlackCat Games, what.cd, btdigg, torrentz.eu, EX.ua, fs.to, torrents.net.ua, и еще куча других сайтов. И если поиск свежих рипов фильмов, сериалов, музыки, мультиков все еще не представляет большой проблемы, несмотря на многократно участившееся удаления со стороны правообладателей контента из поисковых систем, торрент-трекеров и файлообменников, то поиск и скачивание оригинала (DVD или Blu-Ray) фильмов и сериалов или просто ТВ-рипов 7-летней давности на не-английском и не-русском языке — не такая уж простая задача.
Читать дальше →

Интересные Sсi-Fi фильмы, которые вы (не должны были, но) могли пропустить в 2016 году

Reading time4 min
Views68K
Для читателей Geektimes (а еще для своего мужа) я составила список интересных Sсi-Fi фильмов ушедшего 2016 года. Фильмы, указанные ниже, доступны в сети и имели относительно небольшой или неуспешный релиз, поэтому я предполагаю, вы пропустили, по крайней мере, некоторые из них.

Когнитивные стимуляторы и другая психофарма: можно ли стать умнее

Reading time14 min
Views196K
Привет, %username%!

Я бы хотел поговорить о разного рода фармакологических способах улучшить память, мышление, внимание и прочие качества, необходимые для успешной профессиональной и иной деятельности.

В этом посте я постараюсь дать информацию о некоторых интересных препаратах. Часть из них доступна, часть доступна только по рецепту, а часть — практически запрещена. Но, думаю, некоторые сведения из психофармакологии, представленные в этом посте, найдут своего читателя.

Spoiler: NZT ещё не изобрели, но синтезировали некоторое количество потенциально интересных штук.
Читать дальше →

Повышаем производительность кода: сначала думаем о данных

Reading time20 min
Views64K


Занимаясь программированием рендеринга графики, мы живём в мире, в котором обязательны низкоуровневые оптимизации, чтобы добиться GPU-фреймов длиной 30 мс. Для этого мы используем различные методики и разработанные с нуля новые проходы рендеринга с повышенной производительностью (атрибуты геометрии, текстурный кеш, экспорт и так далее), GPR-сжатие, скрывание задержки (latency hiding), ROP…

В сфере повышения производительности CPU в своё время применялись разные трюки, и примечательно то, что сегодня они используются для современных видеокарт ради ускорения вычислений ALU (Низкоуровневая оптимизация для AMD GCN, Быстрый обратный квадратный корень в Quake).


Быстрый обратный квадратный корень в Quake

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

Эта статья — не исчерпывающее хардкорное руководство по железу. Это всего лишь введение, напоминание, свод базовых принципов написания эффективного кода для CPU. Я хочу «показать, что низкоуровневое мышление сегодня всё ещё полезно», даже если речь пойдёт о процессорах, которые я мог бы добавить.

В статье мы рассмотрим кеширование, векторное программирование, чтение и понимание ассемблерного кода, а также написание кода, удобного для компилятора.
Читать дальше →

Что можно почитать из свежей художественной литературы

Reading time3 min
Views59K
Близится новогодние каникулы и нужно как-то провести это время. Поэтому создал список книг которые можно почитать. Отбирал по следующим критериям. Увлекательное, это книги для чтения с удовольствием. Непустые, есть какие-то новые идеи или мысли, может просто хорошее описание чего-нибудь. Свежее, списков хорошей классики хватает. И главное, запомнившиеся.

Короткий список


Самое лучшее. Если вы еще не читали, то я вам завидую.

Элиезер Юдковский «Harry Potter and the Methods of Rationality»


Методы рациональности мы все знаем и любим.hpmor.ruПолный перевод на русский, hpmor.com оригинал на английском, yudkowsky.net здесь еще несколько других произведений которые стоит прочитать и статьи.

Роберт Ибатуллин «Роза и Червь»


Алмаз научной фантастики. Реалистичный космос, с учетом новых знаний и теоретически возможных технологий без фантастических добавок. За прошлый год книга была дописана и издано на бумаге и в электронной форме.

Джон МакКрей «Worm»


Эпическая история о девушке получившую нетрадиционную суперсилу в темном и мрачном супергеройском мире. Настоящий эпик, свежий супергеройский мир, огромный объем хватит на все каникулы. Оригинал, Перевод на русский, незакончен.
Читать дальше →

Брутальное аниме для бородатых программистов

Reading time4 min
Views84K

Бытует мнение, что в груди даже самого сурового бородатого программиста бьётся большое и нежное сердце, в глубине которого всегда найдётся местечко для доброго аниме. Но в жизни бывают моменты, когда настроение не располагает к кавайности: код не прёт, баг не ловится, алгоритм криво работает, тимлид вставил за сорванный дедлайн. И тогда хочется посмотреть что-то суровое, брутальное, мужское. Что же, мир аниме очень разнообразен и может предложить произведения на любой вкус.

Поиск утечки GDI объектов: Как загнать мастодонта

Reading time6 min
Views17K
Строго говоря именно это оригинальный текст статьи, а в блоге уже перевод. Здесь статья публикуется чуть позже и только потому получает бирку перевод.

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

Проблема


Утечка или использование слишком большого числа GDI объектов.

Симптомы:


  • В Task Manager на вкладке Details колонка GDI objects показывает угрожающие 10000(Если этой колонки нету, ее можно добавить, кликнув на заголовке таблицы правой кнопкой и выбрав пункт Select Columns)
  • При разработке на C# или другом языке выполняемом CLR полетит исключение, не блещущее конкретикой:
    Message: A generic error occurred in GDI+.
    Source: System.Drawing
    TargetSite: IntPtr GetHbitmap(System.Drawing.Color)
    Type: System.Runtime.InteropServices.ExternalException

    Также при определенных настройках или версии системы исключения может и не быть, но Ваше приложение не сможет нарисовать ни единого объекта.
  • При разработке на С/С++ все методы GDI вроде Create%SOME_GDI_OBJECT% стали возвращать NULL
Читать дальше →

Подборка русских и зарубежных фантастических книг за год

Reading time5 min
Views81K


Почти два года назад мы делали подборку любопытных фантастических книг, вышедших в 2014 году. И в начале этого года мы решили поддержать это начинание — предлагаем вам одни из самых интересных, по мнению читателей, фантастических произведений, вышедших в 2016-м (как на русском, так и на английском).
Читать дальше →

3D-ручка 3Dali Plus и наборы пластиков для нее: «Палитра» PLA и «Палитра» Watson

Reading time4 min
Views12K
Внимание! Последний в этом году гаджет-обзор, вы еще можете успеть купить эту штуку кому-нибудь в подарок!



Что такое 3D-ручка? Это почти как 3D-принтер, только в качестве привода – ваша рука. Лично мне в руки такая штука попала впервые, границы ее применимости были для меня смутными, так что я открывал ее для себя сам, хотя планировал использовать в качестве подарка детям.

Тонкости проектирования силовой платы инвертора

Reading time6 min
Views26K
Всем привет! Скромными шагами продолжаю цикл статей про разработку железа электробайка. Начнем с самого интересного — инвертора, который управляет мотором. Хочу подробнее рассказать о тонкостях построения силовой платы и о температурном режиме транзисторов.


Модель варп ядра электробайка
Читать дальше →

Самая нужная программа на свете

Reading time20 min
Views168K
image
Какими программами постоянно пользуются люди? Если подумать над этим вопросом, то окажется, что список этот не такой уж большой. К постоянно используемым программам можно отнести: саму операционную систему, файловый менеджер, текстовый редактор, браузер, мессенджер. Это именно тот базовый набор, которым пользуется на компьютере практически каждый человек. Требования к таким программам должны быть высокими: безотказная работа, быстрое выполнение всех функций, понятный и удобный интерфейс.

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

Боли в руках при работе за компьютером. Часть 3. Синдром лестничной мышцы

Reading time3 min
Views37K
В прошлых статьях цикла вы познакомились с диагностикой основных туннельных синдромов верхней конечности и учились снимать напряжение с надплечий. Теперь наступило время разобраться с синдромом лестничной мышцы.

Топография лестничных мышц и плечевого сплетения

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

При синдроме лестничных мышц первоначально возникает нарушение венозного и лимфатического оттока от руки, что вызывает отёчность конечности и создает предпосылки для сдавливания сосудисто-нервных пучков в узких местах на руке. Чаще всего это происходит в запястном канале, локтевом канале, под круглым пронатором предплечья.
Читать дальше →

Боли в руках при работе за компьютером. Часть 2. Освобождаем надплечья и шею

Reading time4 min
Views72K
Частый совет напряжённому человеку: «Чего напрягся – расслабься, получай удовольствие…». Что происходит в результате? – Человек напрягается еще больше!

В прошлой статье вы познакомились с основными проблемами, вызывающими боли в руках при работе за компьютером.
image

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

Урок займет 15-20 минут, вы можете делать его сидя, не отходя от компьютера. Под катом – видео урока, правила выполнения соматических уроков и текстовая расшифровка расширенной версии урока (осторожно – очень много букв!).

Ambient Occlusion Volumes для прожженных самоваров

Reading time7 min
Views14K
Скитаясь по интернету в поисках алгоритмом освещения, которые бы удовлетворили мои потребности, я наткнулся на весьма новый алгоритм, разработанный компанией NVIDIA, название которого AOV (Ambient Occlusion Volumes). Имея в своём распоряжении тёмные осенние ночи и несколько чашек горячего кофе, я решился изучить данный алгоритм, следствием чего является данная статья. Прежде чем я начну, хотелось бы отметить своё удивление по поводу того, что данный алгоритм имеет незаслуженно малую популярность в кругах разработчиков игр, в отличии от всеми знакомого нам SSAO. Содержание данной статьи будет, по большей мере, состоять из теории.
Читать дальше →

Алгоритм Форчуна на C++ для построения диаграммы Вороного на плоскости

Reading time16 min
Views18K

Приветствую, уважаемые читатели данной статьи! В статье я дам описание имплементации алгоритма Форчуна (англ. Fortune's algorithm) для построения диаграммы Вороного (англ. Voronoi diagram) с использованием нативных сбалансированных двоичных деревьев поиска (для уникальных элементов) (англ. BST, binary search tree), предусмотренных стандартом C++, — ассоциативных упорядоченных контейнеров std::map и std::set.

Читать дальше →

Скалярный частотник для однофазного асинхронного двигателя

Reading time11 min
Views97K
Начнём с того, что у каждого программера должен быть токарный станок. Ну… Или, как минимум, у меня он должен быть. И пусть даже без ЧПУ. Это моя мечта.

И мечта сбылась. Станок куплен, привезён, поставлен на место парковки и… Надо бы его включить. А включить его не так и просто. И если не искать простых путей, то нужен «частотник», а по-научному: преобразователь частоты. И пусть я в этом профан, но я его сделал.


Делаем контур управления электродвигателем с заданием тока

Reading time4 min
Views19K

Постановка задачи


Это вторая, итоговая статья. Напоминаю цель: есть двигатель постоянного тока. Задача — разработать, собрать и протестировать устройство, позволяющиее реализовать контур управления с заданием тока применительно к этому двигателю. Желаемое время переходного процесса на застопоренном двигателе (без противо-ЭДС) — не более 10мс.

Текст разбит на две статьи:


Напоминаю, как выглядит макет управляющего железа:


Читать дальше →

Information

Rating
Does not participate
Location
Самара, Самарская обл., Россия
Date of birth
Registered
Activity