Обновить
19
0
Odobenus Rosmarus@OdobenusRosmarus

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

Отправить сообщение

Семь видов интерпретаторов виртуальной машины. В поисках самого быстрого

Время на прочтение35 мин
Охват и читатели37K
Все проблемы в области Computer Science могут быть решены введением дополнительного уровня косвенности. За исключением одной: слишком большого числа уровней косвенности.
All problems in computer science can be solved by another level of indirection, except for the problem of too many layers of indirection.

Программные интерпретаторы известны своей невысокой скоростью работы. В этой статье я расскажу, как их можно ускорить.
Я давно уже хотел поподробней остановиться на создании интерпретаторов. Прямо таки обещал, в том числе самому себе. Однако серьёзный подход требовал использования более-менее реалистичного кода для примеров, а также проведения измерений производительности, подтверждающих (а иногда и опровергающих) мои аргументы. Но наконец-то я готов представить почтенной публике результаты, причём даже чуть более интересные, чем собирался.
В данной статье будет описано семь способов построения программной ВМ для одной гостевой системы. От самых медленных мы проследуем к более быстрым, поочерёдно избавляясь от различных «неэффективностей» в коде, и в конце сравним их работу на примере одной программы.
Тех, кто не боится ассемблерных листингов, испещрённого макросами кода на Си, обильно удобренного адресной арифметикой, goto и даже longjmp, а также программ, использующих копипаст во имя скорости или даже создающих куски самих себя, прошу пожаловать под кат.
Читать дальше →

Один в поле не воин: как создать отказоустойчивый кластер

Время на прочтение5 мин
Охват и читатели37K
Часто случается, что после запуска какого-нибудь амбициозного интернет проекта и удачного его пиара в СМИ компания ожидает большой приток посетителей. К сожалению, наш мир не идеален и так случается, что сайт не справляется с таким потоком посетителей, называемым в наших кругах «хабраэффектом», и начинает тормозить. Соответственно компания теряет и деньги и репутацию. В таких случаях программисты обычно сваливают вину на админов, а админы на программистов. Получается замкнутый круг.

imageЧто же делать, если ваше приложение стало тормозить? Одним из способов является перевод его в кластерную архитектуру. К сожалению, есть не так много инструкций и статей, которые подскажут, как это сделать. Поэтому мы решили опубликовать небольшой пример того, как можно создать отказоустойчивый кластер на базе GlassFish. Этот процесс и многое другое автоматизировано в Jelastic, но если Вы по каким-либо причинам не можете перейти на облачный хостинг, то эта статья именно для Вас.
Читать дальше →

CSS кнопки с помощью псевдо-элементов

Время на прочтение5 мин
Охват и читатели48K


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

В этом уроке я покажу как создать кнопку с изюминкой, используя только якорный тег и мощь CSS.

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

Оптимизация Ubuntu (и прочих Linux-ов) под SSD

Время на прочтение4 мин
Охват и читатели207K
Доброго времени суток всем читающим. В данной мини-статье мне хотелось бы собрать и рассмотреть основные моменты оптимизации работы (и, конечно, продления жизненного цикла ) твердотельных накопителей. Практически всю информацию можно легко найти в сети, но тут я попытаюсь упомянуть пару подводных камней.
Читать дальше →

Обзор NoSQL систем

Время на прочтение5 мин
Охват и читатели56K
Беспрецедентные объемы данных заставляют разработчиков и бизнес приглядываться к альтернативам реляционных баз данных, используемым вот уже более тридцати лет. В совокупности все эти технологии известны как «NoSQL базы данных».


Основной проблемой является то, что реляционные базы данных не могут справляться с нагрузками актуальными в наше время (мы говорим о high-load проектах). Есть три конкретные проблемных области:
  • горизонтальное масштабирование при больших объемах данных, например как в случае Digg (3 терабайта для зеленых значков, отображаемых, если ваш друг сделал dugg на статье) или Facebook (50 терабайт для поиска по входящим сообщениям) или eBay (2 петабайта в целом)
  • производительность каждого отдельного сервера
  • не гибкий дизайн логической структуры.
Читать дальше →

LLVM изнутри: как это работает

Время на прочтение10 мин
Охват и читатели28K
Приветствую хабраюзеров, в этой статье пойдет речь о внутреннем устройстве компилятора LLVM. О том, что LLVM вообще такое, можно прочитать здесь или на llvm.org. Как известно, LLVM (условно) состоит из трех частей — байткода, стратегии компиляции и окружения aka LLVM infrastructure. Я рассмотрю последнее.

Содержание:
  • Сборка LLVM
  • Привязка к Eclipse
  • Архитектура окружения
  • LLVM API
  • Оптимизация Hello, World!
Читать дальше →

MySQL Performance real life Tips and Tricks. Part 3-rd.

Время на прочтение14 мин
Охват и читатели24K
Решил продолжить цикл заметок по данной тематике. В данной статье особое место хотел уделить профайлингу MySQL запросов. Описать средства, которые предоставляются MySQL для профайлинга, и что нужно делать для определения узких мест запроса.

Также, после опубликования первых двух статей я получил пару отзывов и вопросов, связанных с проектированием БД / расстановкой индексов / составлением запросов. На многие вопросы старался отвечать. С некоторыми из них поделюсь и в этой статье.

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

MySQL Performance real life Tips and Tricks. To be continued.

Время на прочтение6 мин
Охват и читатели8.2K
По заявкам трудящихся решил написать еще одну статью, посвященную оптимизации запросов в MySQL.

В прошлой статье habrahabr.ru/blogs/mysql/38907 рассматривались вопросы оптимизации LIMIT, GROUP BY, COUNT.

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

Информация

В рейтинге
Не участвует
Откуда
Queensland, Австралия
Дата рождения
Зарегистрирован
Активность