• Как у меня сломался String.getBytes(UTF_8) и что я с этим делал
    0
    Я пробовал грузить сейфмод с последующим отключением всего что не нужно. Кол-во ошибочных выполнений упало до 2х-3х на INT_MAX выборке. Пока не знаю как занизить частоту на маке — попробую разобраться вечером.
  • Как у меня сломался String.getBytes(UTF_8) и что я с этим делал
    +1
    Спасибо за наводку. Тут пишут что «macOS before 10.13.5 is affected» (не знаю насколько это серьезный источник). Вчера обновился до System Version: macOS 10.13.5 (17F77) но проблема, к сожалению, не исчезла.
  • Как у меня сломался String.getBytes(UTF_8) и что я с этим делал
    +1
    Версии
    ➜  ~ system_profiler SPSoftwareDataType
    Software:
    
        System Software Overview:
    
          System Version: macOS 10.13.5 (17F77)
          Kernel Version: Darwin 17.6.0
          Boot Volume: Macintosh HD
          Boot Mode: Normal
          Computer Name: MacBook Pro (46)
          User Name: Aleksei Kutuzov (alekseik)
          Secure Virtual Memory: Enabled
          System Integrity Protection: Enabled
          Time since boot: 12:39
    
    ➜  ~ sysctl -a | grep machdep.cpu
    
    
    machdep.cpu.max_basic: 22
    machdep.cpu.max_ext: 2147483656
    machdep.cpu.vendor: GenuineIntel
    machdep.cpu.brand_string: Intel(R) Core(TM) i7-7567U CPU @ 3.50GHz
    machdep.cpu.family: 6
    machdep.cpu.model: 142
    machdep.cpu.extmodel: 8
    machdep.cpu.extfamily: 0
    machdep.cpu.stepping: 9
    machdep.cpu.feature_bits: 9221959987971750911
    machdep.cpu.leaf7_feature_bits: 43804591
    machdep.cpu.extfeature_bits: 1241984796928
    machdep.cpu.signature: 526057
    machdep.cpu.brand: 0
    machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C
    machdep.cpu.leaf7_features: SMEP ERMS RDWRFSGS TSC_THREAD_OFFSET BMI1 AVX2 BMI2 INVPCID SMAP RDSEED ADX IPT SGX FPU_CSDS MPX CLFSOPT
    machdep.cpu.extfeatures: SYSCALL XD 1GBPAGE EM64T LAHF LZCNT PREFETCHW RDTSCP TSCI
    machdep.cpu.logical_per_package: 16
    machdep.cpu.cores_per_package: 8
    machdep.cpu.microcode_version: 132
    machdep.cpu.processor_flag: 6
    machdep.cpu.mwait.linesize_min: 64
    machdep.cpu.mwait.linesize_max: 64
    machdep.cpu.mwait.extensions: 3
    machdep.cpu.mwait.sub_Cstates: 286531872
    machdep.cpu.thermal.sensor: 1
    machdep.cpu.thermal.dynamic_acceleration: 1
    machdep.cpu.thermal.invariant_APIC_timer: 1
    machdep.cpu.thermal.thresholds: 2
    machdep.cpu.thermal.ACNT_MCNT: 1
    machdep.cpu.thermal.core_power_limits: 1
    machdep.cpu.thermal.fine_grain_clock_mod: 1
    machdep.cpu.thermal.package_thermal_intr: 1
    machdep.cpu.thermal.hardware_feedback: 0
    machdep.cpu.thermal.energy_policy: 1
    machdep.cpu.xsave.extended_state: 31 832 1088 0
    machdep.cpu.xsave.extended_state1: 15 832 256 0
    machdep.cpu.arch_perf.version: 4
    machdep.cpu.arch_perf.number: 4
    machdep.cpu.arch_perf.width: 48
    machdep.cpu.arch_perf.events_number: 7
    machdep.cpu.arch_perf.events: 0
    machdep.cpu.arch_perf.fixed_number: 3
    machdep.cpu.arch_perf.fixed_width: 48
    machdep.cpu.cache.linesize: 64
    machdep.cpu.cache.L2_associativity: 4
    machdep.cpu.cache.size: 256
    machdep.cpu.tlb.inst.large: 8
    machdep.cpu.tlb.data.small: 64
    machdep.cpu.tlb.data.small_level1: 64
    



    Действительно странно. ОС вчера обновил до актуальной.
  • Как у меня сломался String.getBytes(UTF_8) и что я с этим делал
    0
    Глючат, но на удивление очень редко. Иногда bazel падает с тем же аут-оф-баунд при запуске. Иногда комп полностью зависает при сворачивании окна в док (в тот момент когда оно анимировано «уплывает»). Больше никаких проблем не замечал.

    Еще интересно — по совету из комментов выше пробовал запускать тест внутри докер контейнера на убунту и ошибка не повторяется (хотя инструкции там те же).
  • Как у меня сломался String.getBytes(UTF_8) и что я с этим делал
    0
    Похоже что там действительно 0:
    yadi.sk/i/nVpyIvDJ3Y8qzs
  • Как у меня сломался String.getBytes(UTF_8) и что я с этим делал
    0
    Конечно. Результаты:
    Сравнение дабла: yadi.sk/i/1z-WK0H03Y8ota
    Сравнение флоата: yadi.sk/i/bnn8n6tm3Y8oyk
  • Как у меня сломался String.getBytes(UTF_8) и что я с этим делал
    0
    Спасибо за совет.

    — Обновить ОС не помогло.
    — Я попробовал запустить докер контейнер с убунту и собрать бинарник там. Внутри контейнера ошибка не повторилась! (проверил gdb что sse инструкции используются). Проверить на реальном live cd пока нет возможности так как на ноутбуке только usb-c порты :( Проверю на «чистом» линуксе как появится возможность.
  • Как у меня сломался String.getBytes(UTF_8) и что я с этим делал
    0
    Версия HotSpot java version «1.8.0_171».
    У коллег проблема не повторялась. Исходя из того что проблема появлялась очень редко и воспроизвелась на простом cpp методе, я думаю что дело именно в железе конкретного компьютера.
  • Как у меня сломался String.getBytes(UTF_8) и что я с этим делал
    +1
    Спасибо за совет, попробую поставить built-in тест на ночь.
  • Как у меня сломался String.getBytes(UTF_8) и что я с этим делал
    0
    Честно говоря не знаю куда дальше продолжать :)

    Добавление strictfp к бенчмарк классу в Java ошибку не убрало. Не уверен как это можно включить для clang. В интернете я нашел что можно проверить std::numeric_limits::is_iec559 — «возвращает» 1.
  • Как мы выбирали между Elastic и Tarantool, а сделали свою (самую быструю) in-memory БД. С Join и полнотекстовым поиском
    +5
    Было бы хорошо, если бы помимо «Reindexer — полностью in-memory база данных» вы бы указали что Reindexer в тестах был в embedded режиме и что флаш данных на диск происходит асинхронно.

    Это важные особенности — так как отсутствие слоя сети существенно увеличивает рпс быстрых однотипных операций (оптимизации компилятором всего бенчмарка, меньше вытеснений кешлайнов и тп), а асинхронная запись на диск не только ничего не блокирует, но еще и может приводить к потере данных. С этими уточнениями будет понятно откуда такой выигрыш в производительности и не будет нужды смотреть в код.
  • Место Java в мире HFT
    +1
    В статье написано «Аллокация выглядит как уменьшение указателя, указывающего на начало свободной памяти.», а затем идет пример с аллокацией 16 байт в диапазоне 0х4000:0х4010. Не должен ли быть диапазон 0х3990:0х4000, если следовать 1му утверждению?
  • Высоконагруженное приложение на java
    0
    Немного своего опыта.

    Платформа JEE. Само понятие высоконагруженной системы говорит о том, что стандартные решения не подходят или нуждаются в доработке. Тк готовые решения обычно подходят для всего и ничего не знают про ваш домен, то они вряд ли смогут применить оптимизации, доступные только вам. При разработке подобных систем стоит выбирать несвязанные (опенсорсные) компоненты и включать их в проект. Например, отлично подходит embedded jetty в качестве сервера (его отдельные куски потом можно будет переписать). В качестве IOC контейнера лучше выбрать guice, который решает только одну задачу, чем спринг, который решает сразу все.

    Очереди. Время обработки сообщения, попавшего в конец очереди размера x10, будет во много раз меньше чем время ожидания его обработки. Нет смысла заставлять пользователя ждать когда мы при этом ничего не делаем. Очереди должны быть размером x1-x2 и необходимо постоянно мониторить их размер. По хорошему очереди всегда должны быть пустыми. Исключение составляют очереди, которые обрабатываются батчем (например, из-за io).

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

    Мониторинг. + мониторинг gc, safepoint'ов и прочего в самой java.

    И еще немного от себя:

    Профилирование. Нужно освоить JMC и периодически просматривать дампы на предмет больших и не нужных аллокаций/промоушенов. Так же в поиске горлышке очень поможет расстановка меток в коде и их последующей визуализации (как это сделано в js профилировщике, например, в ff).

    CI нагрузочное тестирование. Если проводить тесты по коммитно, то сразу будет видна деградация производительности.
  • Что не так с перезапуском «Кинопоиска»
    +7
    Тоже вспомнился провал редизайна имхонета в 2013. Вместо полнофункционального сайта с рекомендациями подсунули поделку для планшетов. Тогда гневно ушел на goodreads дожидаться, что все вернут обратно, но с того момента там ничего и не изменилось. Публичной статистики у имхонета нет (или я не нашел), но если сравнить кол-во отзывов на Аватар (2009) и Интерстеллар (2014) то получается 3260 и 683 отзывов соответственно. Не то, чтобы это объективная метрика, но косвенно подтверждает что дела у них не стали лучше. Если ребята пойдут тем же путем, то боюсь что мы наблюдаем закат кинопоиска.
  • Идеальный программист
    +3
    «Невежливые ответы часто исходят из Зоны. Возможно, вас раздражает, что вас вытаскивают из Зоны или кто-то мешает вашим попыткам войти в Зону. Как бы то ни было, грубость часто объясняется вашей связью с Зоной.» вот эту цитату из книги по достоинству оценили бы братья Стругацкие.
  • Как программисту нарисовать логотип, не умея рисовать?
    +12
    image
  • Я позвонил, чтобы потратить ваше время
    +50
    Можно одних спамеров к другим отправлять на самом деле. Например, заказать чинить комп в службу такси.
  • Переезд IT-шника в Германию: от А до Я
    +5
    Без высшего образования вы не сможете получить BC при переезде и работодателю придется доказывать в местном управлении что он не смог найти резидента на ваше место. Еще вы не сможете менять работу (т.е. пермит будет привязан к работодателю). И вам придется ждать 5 лет вместо 2х для получения ВНЖ.

    Так выглядят формальные правила. В реальности «доказывать в местном управлении что он не смог найти резидента на ваше место» для ИТ специальностей это просто запрос от работодателя. И вам с большой вероятностью переделают пермит если вы принесете новый контракт на месте (сам я так не делал, но коллеги утверждают что можно). Главное все рассказать что у вас нет вышки (на интервью, в посольстве и т.д.) т.к. в моем случае мне в России сделали визу на дальнейшее получение БЦ и по приезду возникли не большие сложности.

    Вообще там есть опции типа «зарплата больше 67.5к в год или 5 лет опыта» == «диплом» но они вроде как не приняты. Работодатели на счет диплома не особо беспокоятся и переживать из-за этого не стоит.
  • Книга «Java. Новое поколение разработки»
    +4
    Проект «Монета». Нехватает еще языков «Скала» и «Захватывающий».

    Ну вот зачем это пререводить?
  • Генератор случайных котов за 8 шагов
    +1
    которобот
  • Адаптируемость
    +9
    В режиме терминала на удаленном хосте использую vi. //TODO: скопировал из статьи, переписать потом на нормальный комментарий
  • HTML5/AngularJS/Nginx приложение с правильным с google-индексированием
    0
    Да, я описывал только для режима html5 т.к. считаю что пора уже в некоммерческих проектах перестать задумываться о поддержке < 5.

    Для привычной hashbang навигации необходимо:
    — использовать #! а не #
    — в sitemap указывать ссылки с hashbang

    Ссылки будут преобразованы из example.com/#!/home в example.com/?_escaped_fragment_=/home
  • Перевоплощение эйчара в Java разработчика
    0
    Такие аргументы как «большой спрос на разработчиков» и «большое сообщество» не нужно упускать, когда решаешь на каком языке ты будешь работать.
  • Разработка ПО: 2. Наследство
    +3
    Извините, а о чем статья?
    Я перечитал ее 2 раза и не понял ни мысли, ни цели, ни логики. Единственный point — «разработка по, это как строить дома, только по другом». Не могли бы вы помочь мне, закончив статью «выводом»? Спасибо.
  • Яндекс.Такси вызывали?
    +2
    Ребята из intaxi.ru, наверно, очень расстроились, прочитав эту новость
  • ВКонтакте Offline — другой взгляд на работу с данными ВКонтакте
    0
    В конце апреля написал расширение History Calendar и отправил на сайт my-chrome.ru небольшой обзор. В результате получил копипаст этого обзора на множество сайтов и прирост пользователей ~300 в сутки. На текущий момент расширение имеет 10k пользователей, но прирост стал практически нулевой. Рекламой кроме того раза не занимался, но регулярно нахожу в инете новые обзоры и даже видео.
  • Как был взломан Вконтакте.ру
    +9
    Возможно их действительно взломали, а они прикрываются этим (как в south park про 11 сентября — 10x09 :)?
  • Написание макроса-бота для браузерной игры
    0
    Спасибо, заработало.
  • Написание макроса-бота для браузерной игры
    0
    Не получается. Процесс в памяти висит, но ни чего не делает. Пробовал с разными dll.
  • Веб-сайтам грозит штраф 50 тыс. евро за установку кнопки Facebook Like
    +2
    Для Хрома есть расширение Facebook Disconnect
    .
  • Эпидемия в данных
    +4
    метафора с печатью очень удачно подходит
  • Производительность Firefox и Chrome на 150 открытых вкладках
    +1
    У меня такая же проблема. Выяснил, что если отключить adblock, тормоза исчезают.
  • Не используйте Java7 ни для чего
    +2
    Да бросте. Вспомните это.
  • Foxconn поставит на конвейер 1 млн роботов
    +2
    Чувствую, пятничная вечеринка была сильно испорчена.
  • Электрической печатной машинке от IBM исполнилось 50 лет
    0
    ibn 5100?
  • Яндекс.Почта напоминает о письмах без ответа
    0
    Ещё нужна опция для отключения разделителя письма и подписи. Приходится всё время стирать его вручную т.к. у меня используется свой разделитель на css.
    image
  • Публикация на стене Вконтакте средствами php
    0
    Ещё бы добавить возможность выборки по спискам друзей, а не показывать всех скопом.
  • Firefox 6 станет поддерживать ряд свойств из черновика модуля CSS3 Text
    0
    «Вдругорядь» — так и не понял, что это означает.
  • Дуров ответил на попытки Mail.Ru Group поглотить «ВКонтакте»
    +14
    [irony]Наверное потому что только недавно они сумели прикрутить поддержку юникода. Это было так сложно. Теперь займутся IMAP'ом.[/irony]
  • Ведущий разработчик Firebug перешёл в команду Google Chrome
    0
    Ни когда не сталкивался с проблемой удаления кук. Правда пользуюсь dev, не знаю как там дела в stable.