Pull to refresh
1
0
Александр @ZoNT

User

Send message
«Это даже не шутка, похоже, что именно эта картинка наиболее точно отражает...» что о Cassandra уже можно забыть, а HBase «не дотягивает»?
В заголовке «Битва двух якодзун», а на фотке один бывший якодзуна (http://www.japan-sumo.ru/?q=kisenosato) а второй вообще не якодзуна (http://www.japan-sumo.ru/?q=shohozan)
Пожалуйста, перетестируйте js:
const levDist = (s1, s2) => {
  const m = s1.length;
  const n = s2.length;

  // Edge cases.
  if (m === 0) {
    return n;
  } else if (n === 0) {
    return m;
  }

  let v0 = new Uint16Array(n + 1);
  let v1 = new Uint16Array(n + 1);

  for (let i = 0; i < m; ++i) {
    v1[0] = i + 1;

    for (let j = 0; j < n; ++j) {
      v1[j + 1] = Math.min(
        v0[j] + (s1[i] === s2[j] ? 0 : 1),
        v0[j + 1] + 1,
        v1[j] + 1
      );
    }

    [v0, v1] = [v1, v0];
  }

  return v0[n];
};


const s1 = new Uint8Array(15000).fill('a'.charCodeAt(0));
const s2 = s1.slice();
const s3 = new Uint8Array(15000).fill('b'.charCodeAt(0));

console.time('Finished in');

console.log(levDist(s1, s2));
console.log(levDist(s1, s3));

console.timeEnd('Finished in');
Не вводите в заблуждение. Сравниваются именно идентичные реализации, о чём указано в правилах: например нужно ОБЯЗАТЕЛЬНО использовать хэш-мэп (https://benchmarksgame-team.pages.debian.net/benchmarksgame/description/knucleotide.html#knucleotide), хотя он реально ухудшает производительность
Написал я под этот бенч решение на nodejs, которое превосходило в два раза текущее. Его выпилил за «нарушение постановки задачи», хотя на любых тестовых данных оно выдавало правильные результаты.
Данный бенч (или его владелец) очень непоследователен в правилах: половина решений в некоторых тестах использует ассемблерные вставки. Что в итоге мы этим показываем: как крут ассемблер или как крут тестируемый язык?
const convert = str => str.toLowerCase().match(/\w/g).sort().join('');
const anagram = (strA, strB) => strA !== '' && strB !== '' && convert(strA) === convert(strB);

Так лучше?
Следует также учесть, что анаграмма это «Слово или словосочетание, образованное путём перестановки букв, составляющих другое слово (или словосочетание).». То есть пустая строка не может быть анаграммой.
Это проблемы постановки задачи, на это уже отвечали ниже: habr.com/ru/company/skillbox/blog/445360/?reply_to=19946684#comment_19944882
const convert = str => str.toLowerCase().match(/\w/g).sort().join('');
const anagram = (strA, strB) => convert(strA) === convert(strB);
Пример странный. У меня получилось так:
import Vue from "vue/dist/vue";

new Vue({
    data: { count: 0 },

    template: `
        <div>
            <h1>{{count}}</h1>
            <button @click="count -= 1">-</button>
            <button @click="count += 1">+</button>
        </div>
    `,

    el: "#app"
});
А я пользуюсь.
А в Keyed results svelte проигрывает.
Ну и если заглянуть в код приложений, то они разные: в одном используется вотчер для записи в локалсторедж, в другом — нет никакого вотчера и запись в локалсторажд размазана по всему коду. И т.д.
И на Vue можно написать так, чтобы работало в бенчмарках супербыстро, только выглядеть такой код будет непрезентабельно, неподдерживаемо и плохорасширяемо.
Для сравнения то же самое, но на Vue: jsfiddle.net/gm739490
В общем вариант такой: либо нормально работает сборка и не работает dev, либо работает dev, но корень сервера определяется неправильно (не относительно папки dist)
Слишком замедляет сборку. Использую просто cli-тулы и запускаю из npm: npm run…
А теперь с той же командой запустите девелоп-сервер, положите в папку dist любой json и попробуйте загрузить его XHR-ом.
Уже год с лишним как отказался от использования гульпа, а тут кто-то только проснулся…
Текстовый редактор у меня написан на js: github.com/Microsoft/vscode
Как будто я не прочёл всю доку перед использованием…
Пришлось форкнуть и внести изменения под свой проект.
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity