Не понимаю зачем некоторые люди пишут такую дичь и даже ее не коментируют (это java)
private void _write(byte a, byte b, byte c) throws IOException { out[0] = ENCODING_TABLE[(a>>2)&0x3F]; out[1] = ENCODING_TABLE[((a<<4)&0x3F|(b>>4)&0x0F)]; out[2] = ENCODING_TABLE[((b<<2)&0x3F|(c>>6)&0x03)]; out[3] = ENCODING_TABLE[c&0x3F]; super.out.write(out,0,4); } |
Инетерсует либа для очереди, что то похожее на https://github.com/Automattic/kue только без redis
|
Вложений: 1
Кто-нибудь знает, как выстроить это всплывающее окно обратно в левую панель, рядом с "Favorites"?
Сейчас для достижения данного эффета приходится перезапускать IDE. Хотелось бы без перезапуска. |
Кто пишет на react, вы делали что то такое :
есть например root приложения redux, ReactDOM.render(<App locale="en-US" userID={1} />, container); и какой то внешний компонент который не зависит от основного приложения ReactDOM.render(<OutsideComponent locale="en-US" userID={1} />, container); ? |
Обнаружил интересную такую багофичу в V8 касательно геттеров.
Изначально я пытался сравнить производительность вызова геттера с вызовом обычного метода. Тестировал в node.js v8.1.3, Ubuntu 16.04 LTS, Intel Core i3-5005U вот таким кодом: let object1 = { hello() { return Math.random(); } } let object2 = { get hello() { return Math.random(); } } let heap1 = []; let heap2 = []; console.time("object1"); for (let i = 0; i < 1000000; i++) { heap1.push(object1.hello()); } console.timeEnd("object1"); console.time("object2"); for (let i = 0; i < 1000000; i++) { heap2.push(object2.hello); } console.timeEnd("object2"); Результат получился довольно обидный - вызов геттера оказался почти в три раза медленней вызова метода (~275ms против ~95ms). Полез в гугл разбираться, почему так (по логике, особой разницы быть не должно, ведь правда?), оказалось вот что: при объявлении геттера в литерале объекта отключаются какие-то оптимизации из-за каких-то проблем с памятью (https://codereview.chromium.org/714883003, в подробностях не секу), и чтобы этого избежать, нужно устанавливать геттер через Object.defineProperty или, внезапно, литералом, но в прототип: let object3 = {}; Object.defineProperty(object3, "hello", { get() { return Math.random(); } }) let object4 = { __proto__: { get hello() { return Math.random(); } } } let heap3 = []; let heap4 = []; console.time("object3"); for (let i = 0; i < 1000000; i++) { heap3.push(object3.hello); } console.timeEnd("object3"); console.time("object4"); for (let i = 0; i < 1000000; i++) { heap4.push(object4.hello); } console.timeEnd("object4"); Тогда всё классно: и тот, и другой вариант одинаково исполняются за приемлимые ~93ms, что даже немного быстрее прямого вызова (там при повторных запусках наблюдается такой же разброс значений, но на три-четыре миллисекунды выше). В фф результат одинаково хреновый везде) у меня ~160ms. Всё в порядке :) В общем вот так вот. Может, кому-нибудь пригодится :) Судя по тикету на chromium.org штука эта довольно древняя и исправлять её не торопятся, так что в высоконагруженных проектах вполне может быть актуально. |
Сегодня я понял как случайно можно удалить данные с сервера...
Сегодня вместо rm *xsd я написал rm * xsd Слава богам что без -r не удаляет подпапки |
Кто-нибудь умеет работать с портами из ноды? А то я костыль на go юзаю =(
|
Tim, в каком смысле с портами? Можешь более конкретно написать вопрос?
|
нейросеть-копипастерша
Вложений: 1
|
Цитата:
|
Часовой пояс GMT +3, время: 01:21. |