All streams
Search
Write a publication
Pull to refresh
161
1.4
Send message
Это потому что ваш тест говно, прощу прощения за мой французкий
На ноде никто так не делает, делают примерно вот так:
const Promise = require('bluebird')
const mysql = require('mysql')
const pool = mysql.createPool({
    host: 'localhost',
    user: 'root',
    password: 'pwd',
    database: 'test',
    connectionLimit: 100
})
pool.query = Promise.promisify(pool.query)

function generatePage(res) {
    const time = process.hrtime()
    pool.query(`SELECT * FROM 'users'`)
        .then(results => {
            let response = JSON.stringify(results)
            const diff = process.hrtime(time);
            const generationTime = diff[1] / 1000000;
            response += `<div><b>Страница сгенерирована за: ${generationTime}ms</b></div>`
            res.end(response)
        })
        .catch(err => console.log(err))
}

Завтра дочитаю. Надо всё таки седня работать :D
Блин, у нас в офисе уже ставки делают, будет ли следующий комментарий
2+2=4 :D
И про то, что качественные тесты лучше некачественных :D
Нее, еды вам хватит, уже начали совсем забывать о чем речь
Не скажу про php, но js не съедает, а каждый раз создает новую строку, что равносильно тому что в jave

То о чем вы пишите имеет конкретное название «лучшая реализация алгоритма», и там уже важно кто лучше или умнее реализовал тот-то момент, а то и правда можно написать просто «count = 1000000». К производительности в лоб 2х языков это не имеет отношения

Автор глупость сравнивает, но даже в таком случае должно быть разъяснение почему и где ошибки, чтобы на более продуманных тестах такую ошибку не допустить (автором или тем кто читает тему)
Именно с технической точки зрения, а не с «надо/не надо»

Как выше заметили, «сравнения должны быть честными, вне зависимости от того, что сравнивается»
а уже ценность этих сравнений другой вопрос
Ой, йой, только вот по ссылке точно такая же «бесполезная» работа, с которой вы так яростно боритесь :D

А вот в комментариях реальная тема, обучение базовым основам тестирования по канонам, что куда полезнее ваших комментариев, которые настолько очевидны, что прям «аууу»
Да-да-да, а еще кароче единороги существуют, и они пишут идеальный код для тестирования, но к сожалению мы такой никогда не увидим, потому что в реальности ни у кого нет времени 2 полноценных приложения для 2х разных платформ, с учетом особенностей этих платформ, написать

Вот и приходится в вариациях «пирожков из какашек» барахтаться (у кого-то получше-повкуснее, как у debian.org, если верить вашему вкусу), но всё равно они шо то ..., шо то…

Я так понимаю еды у вас уже достаточно, потому что «аууу, то что вы говорите настолько очевидно, что в приличном обществе это даже не обсуждают, это всё и так знают» :D
Нее, у меня столько еды нет, мне работать надо :D

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

Оптимизатор такой смотрит на код и думает «а полезная ли это работу, или можно пока на печи поваляться» *и руки в боки у него*

Всё таки наверное можно немного покормить:
С вами бесполезно говорить, вы оперируете терминами «полезная работа, тесты на debian.org отличаются в лучшую сторону», еще чуть чуть и вообще не важно, что в этих комментариях обсуждается конкртено эта статья, и будем мысли Fortop читать, лишь бы знать, что есть полезная работа, а что бесполезная :D

Оптимизатору пофиг что оптимизировать, можно и такой примитив как тут сравнить, лишь бы делать это правильно

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

Автор хотел протестировать производительность
1. чтобы протестировать производительность, нужно совершить какую-то работу
2. чтобы совершить работу нужно чтобы эта работа была сделана, а не выкинута оптимизатором как «результат не используется дальше по коду, можно скипнуть»
3. цикл для того чтобы сэмитировать много работы
4. в цикл добавляется смысл, чтобы оптимизатор попал в более инетерсные условия, чем никому не интересные сложения чисел
5. после цикла работа с результатом

Оптимизатор пускай оптимизирует именно работу, что и интересует в вопросе производительности, тут вообще нечего обсуждать, это азы, даже знаменитый performance.js работает именно так (только чуть сложнее)

Коллеги, не тратье время на тролля, приберегите еду для более интересного случая
Комплексное решение:
В ios ничего не надо разрешать при установке, все запрещено
При первом обращении к камере (чтобы считать номер карты например) или контактам спрашивается разрешение и можно отказаться, ничего не ломается от отказа, базовый функционал остается доступен

Была информация что в какой то версии андроида что-то подобное появилось
92 случая в первый месяц, потом еще как возобновили продажи
Вопрос не в том, сколько за месяц, а в том, что они все потенциально взрывоопасны из-за архитектуры
Больше, 92 за первый месяц, потом еще после того как возобновили продажи
The number of Samsung Galaxy Note 7 incidents in the US rises to 92
Если бы не было поддержки, то не было бы и флага который можно было бы включить
В хроме 55 и файрфоксе 50 флаг включается и официальная wasm демка работает

В хроме нужно браузер перезагрузить, в файрфоксе не надо
Все верно, для этого wasm (версия из статьи) нужна канарейка, а сам wasm в основной ветке работает нормально, потому что запускается эта демка
http://webassembly.org/demo/
Уже давно в основной ветке и хрома и файрфокса под флагом, нужно только включить
Перепроверил, показалось странным, так как обе функции на текущем v8 движке должны работать одинаково, обе они успешно оптимизируются и странно, что такая большая разница между вашей функций и из топика.

В итоге нужна 1 единственная маленькая корректировка в оригинальную функцию и разница практически не будет

fiboJsMemoOpt: 77.259ms
fiboJsMemoMyMods: 88.285ms

В оригинале вместо
memo = memo || {};

надо написать (что в данном случае намного правильнее чем {})

memo = memo || [];

И производительность вырастает
Согласен с вашим комментарием, только разве что оптимизация с void 0 уже не требуется, разницы между

  const x = memo[num];
  if (x !== void 0) {
    return x;
  }

и

  if (memo[num]) 
    return memo[num];
  }

никакой нет
fiboJsMemoOptVar1: 8.424ms
fiboJsMemoOptVar2: 7.873ms
Сначала они доделают Минимально Жизнеспособный Продукт, а после этого займутся менее приоритетными фичами, к которым отнесли DOM — http://webassembly.org/docs/future-features/
Пример игры http://webassembly.org/demo/

Пока подразумевается что wasm объект подключается к js и работа с ним ничем не отличается от обычного js

Information

Rating
1,464-th
Registered
Activity