Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 31.08.2017, 17:58
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

рони,
так я вроде меньше строчек написал то
Ответить с цитированием
  #42 (permalink)  
Старый 31.08.2017, 18:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Poznakomlus,
да похоже в данном случае эта строка не даёт никакого ускорения
Ответить с цитированием
  #43 (permalink)  
Старый 31.08.2017, 18:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068


var arr = new Array(10000).fill(1)

let threeF = arr => arr.filter(el => {
  this[el] = ++this[el] || 1;
  return 3 === this[el]
}, {})
console.time("x")
var x = threeF(arr);
console.timeEnd("x")


function fn(d, e) {
    for (var f = [], b = {}, a, c = 0; c < d.length; c++)
    a = d[c], b[a] == e || (b[a]++ || (b[a] = 1), b[a] == e && f.push(a));
    return f
};

console.time("k")
var k = fn(arr,3);
console.timeEnd("k")
Ответить с цитированием
  #44 (permalink)  
Старый 31.08.2017, 18:19
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

так извращаясь можно в одну строку
let threeF = arr => arr.filter(el => (this[el] = ++this[el]|| 1) &&  3 === this[el], {});

Последний раз редактировалось Vlasenko Fedor, 31.08.2017 в 18:30. Причина: убрал лишнии скобки
Ответить с цитированием
  #45 (permalink)  
Старый 31.08.2017, 22:36
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от рони Посмотреть сообщение

var arr = new Array(10000).fill(1)

let threeF = arr => arr.filter(el => {
  this[el] = ++this[el] || 1;
  return 3 === this[el]
}, {})
console.time("x")
var x = threeF(arr);
console.timeEnd("x")


function fn(d, e) {
    for (var f = [], b = {}, a, c = 0; c < d.length; c++)
    a = d[c], b[a] == e || (b[a]++ || (b[a] = 1), b[a] == e && f.push(a));
    return f
};

console.time("k")
var k = fn(arr,3);
console.timeEnd("k")
Рони, друг мой, ну разве можно так проверять?
Ответить с цитированием
  #46 (permalink)  
Старый 01.09.2017, 07:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

j0hnik,
предложи способ лучше!
Ответить с цитированием
  #47 (permalink)  
Старый 01.09.2017, 08:13
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от рони Посмотреть сообщение
j0hnik,
предложи способ лучше!
Просто запустите ваш последний "тест скорости" насколько раз. разброс больше чем в 100% при абсолютно идентичном коде как бэ намекает что измерительный инструмент не совсем точный.

https://jsperf.com/ - Рони вот вам отличный сервис. там даже 5% разброса не видел
Ответить с цитированием
  #48 (permalink)  
Старый 01.09.2017, 10:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

j0hnik,
ок но в данном случае этот сервер показал фантастические результаты, когда 11 циклов быстрее одного.
Ответить с цитированием
  #49 (permalink)  
Старый 01.09.2017, 13:50
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от рони Посмотреть сообщение
j0hnik,
ок но в данном случае этот сервер показал фантастические результаты, когда 11 циклов быстрее одного.
Рони, знал бы я все низкоуровневые процессы, которые там происходят.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать что бы картинки с другого url отображались как свои zlodey Серверные языки и технологии 1 04.05.2015 21:30
Как проверить сайт клиента на установленный блок Alexmad Серверные языки и технологии 10 02.04.2015 20:03
как проверить, что введенные пользователем цифры - это действительно цифры? sana Общие вопросы Javascript 7 31.03.2015 21:16
как сделать что бы при открытии страницы сразу открылось большое фото oksanaweb Общие вопросы Javascript 1 05.06.2013 02:17
Как узнать что полоса прокрутки коснулся самого низа Грабовский Элементы интерфейса 3 15.01.2012 14:33