Pull to refresh
7
0

User

Send message
Какое именно не помню, но это было 2 года назад с относительно свежим тогда ядром.
157 секунд, но отработало. У знакомого был пример, когда на macos вообще не отработало за 20 минут.
Воспроизвел
fallocate -l 1G test
cat test | grep -E [0-9]
# «прогреваем кэш»

time -p cat test | grep -E [0-9]
real 0.95
user 0.61
sys 0.57
time -p grep -E [0-9] test
real 3.32
user 2.63
sys 0.69
Кэш файловой системы ускорил второй запуск где-то в 4 раза. И какой с этого вывод?
По поводу
[Непонятно, почему он сразу не запускал это как `grep Result *.pgn`?]
Трюк заключается в том, что в некоторых ситуациях cat file | grep работает эпично быстрее на некоторых типах условий, чем просто grep.
По ходу grep таки сначала полностью загружает файл в память и только потом обрабатывает (не для всех условий выборки). Есть другая гипотеза, что grep загружает файл неоптимальными chunk'ами.
Разница в некоторых случаях достигала grep — 3 часа cat | grep — 30 сек. Воспроизвести не смогу за давностью (2 года назад был опыт)
В теории должно было увеличить. На практике у него есть какой-то лимит на скорость обработки insert'ов и не важно сколько нод в кластере, мы все-равно подключаемся к какому-то главному серверу и вот у него-то и затык.
P.s. Если кто-то имеет другой опыт было бы очень интересно посмотреть т.к. как раз из-за того, что rethinkdb не выдержала нагрузку на insert'ы пришлось смотреть в сторону message broker'ов.
Мы игрались с durability soft, hard, ssd, hdd, tmpfs. Результат один 1400 insert/sec не больше. Ядра использовать не умеет, нужно ручками стартовать несколько и объединять. Тестили на одном instance, на двух instance, объединенных в кластер. Результат — печалька, т.е. мы не получили прироста производительности при двух instance'ах (есть еще вероятность, что мы что-то неправильно настроили или как-то странно проверяли. З.ы. Мы даже не читали, просто писали. З.ы. на update'ы ситуация у него по-лучше). По ходу, оно хорошо масштабируется по ходу только на чтения и на update'ы. Кстати, даже на github были вопросы по производительности. Они подпиливают уже 2 версии как, уже гораздо лучше, было вообще 120 insert/sec.
Объясню на пальцах. Есть два слушателя. Один слушает select * from table where price > 20. Другой слушает select * from table where price > 40.
Как работает rethinkdb:
Кто-то добавляет item с price 20 — никто не должен получить ничего.
21 — получает только первый (он получает полностью весь item, а не уведомление, что в этой таблице что-то поменялось)
41 — получают оба.
В случае notification'ов ты не можешь фильтровать какие ты получаешь а какие нет. В случае Postgres это просто именованый broadcast pipe. В случае rethinkdb она еще фильтрует за тебя.
Масштабирования по insert'ам нет. Попробуйте выжать неё больше 1000-2000 insert/sec и вы сильно удивитесь.
Отверстие в унитазе используется в офисных помещениях на 1% от его реальной пропускной способности. Мозг используется на 5%, но каждую секунду нужны разные 5% мозга. 92.7% населения воспринимают информацию лучше, если она содержит знаки после запятой. Использование статистики без понимания предметной области ведет к бессмысленным цифрам в отчетах.
Купить это добро можно было очень давно
www.sparkfun.com/products/11900 (посмотрите product video и задемотивируйтесь скоростью реакции и усилием)
А недавно появилось вот такое
www.sparkfun.com/products/8782
Уже есть вот такое cirqoid.com/ оно еще и pick'n'place умеет, правда, кривовато ИМХО.
Каркас лучше. Насадки сделаны вроде тоже лучше.
Тогда мне нужно будет вешать observe на объект и на каждое изменение объекта изменять массив
Ок. А как быть с ng-view и с объектами в al-repeat? Какой-то workaround есть?
Мне не нравится, что название не соответствует содержанию. Если уж назвали angular-light, то значит, подразумевается, что он совместим хотя бы на 90% с angular.
Если что, считайте это hate-постом.
tl;dr пока не используйте angular light, если вы переходите с angular
Итак. Решил я таки попробовать angular light. Какое же было мое разочарование, когда от angular в этом проекте не заметил ничего кроме названия.
Теперь по порядку.
0. Coffeescript для меня вообще не проблема, я сам пишу на iced-coffee-script
1. На сайте можно скачать либо 0.8 minified, либо 0.7 полную. Хотя последняя сказано, что 0.8. Ладно, мелкая неприятность. Пропустим
2. Заменяем в своем проекте angular на angular light. Всё перестает работать. Ладно, фиг с ним, это ожидалось. Начинаю копаться что не работает. window.angular отсутствует, теперь window.alight. Поправил у себя в исходниках.
3. Нет alight.module. Ок. Могу попрощаться со всеми модулями для angular. Тоже логично. Фиг с ним. Но хотя бы для совместимости бы оставили возможность.
4. Нет alight.module -> нет app.directive, нет app.controller. Вот тут уже начинаются проблемы. Мне реально нужно определить app.directive в котором написать alight.controllers[controller_name]. Ладно. Напишем.
5. Замена префикса директив ng- на al-. Вот тут уже начинается ужас ужас ужас. Весь проект… переименовать… пакетно… ладно, не нужно т.к. у меня шаблоны уже давно на jade и я их сам собираю, туда же вставлю .replace ng- al- с правильной регуляркой, дабы ничего лишнего не зацепило.
6. $scope -> scope. Я, конечно, понимаю, что мне нужно всего-лишь сделать replace по проекту $ -> '', но никто не гарантирует, что после этого у меня не появится конфликтов имен переменных. Но вообще-то это уже существенный аргумент, что бы не переходить т.к. переписать нужно не в одном месте, а везде по проекту. Причем обратно сделать не получится 100% т.е. это путь в одну сторону.
7. Нет app.config. Ну да, нет же модулей. Да и не нужен теперь т.к. у меня всё-равно нету $routeProvider
8. ng-class -> al-class упс, такой директивы нет, пиши сам.
9. ng-view -> al-view туда же
10. «Wrong repeat: (key, mod) in mod_host.» Т.е. al-repeat не поддерживает словари. Всё. Это я менять не буду.
11. ngModel -> ??? даже уже не искал на что нужно заменить
12. «Wrong expression: ngModel.$expanded?\»-\":\"+\"" даже не разбирался поддерживает ли angular light тернарные выражения.

Вывод: Слишком много нужно поменять. Не все изменения 100% будут работать. Придется отказаться от модулей, например от ngRoute. Некоторые директивы просто дописать т.к. их тупо нет.
Подожду пол-года, может ситуация поменяется. Если перенос проекта будет занимать меньше 30 минут, тогда перейду, скорее всего даже с радостью.
P.s.
alight.version
«0.8.3»
Я не автор данного топика, потому могу только сказать за модель на видео.
Там есть оптический сенсор дабы понимать, что сделана полная четверть оборота, иначе будет вот так www.youtube.com/watch?v=BDryMB3hea0
Только руку нельзя засунуть в обычный принтер, но можно создать специальный принтер.

Information

Rating
Does not participate
Registered
Activity