Ruby: блок урожая от блока?

Вы хотите сравнить хранилище ключей APC с Memcache, верно? Потому что APC также выполняет кеширование кода операции, а это совсем другое.

Что ж, на одной машине кэш-память APC k-v намного быстрее, чем memcache. Memcache обладает большей функциональностью, но предназначен для распределенных сред, в то время как APC работает только на отдельных серверах.

Недавно я провел тестирование, чтобы установить, а затем получить по 1 миллиону ключей в обоих, каждый ключ представлял собой последовательное целое число, а значения были 32-байтовой строкой.

По локальному хосту memcache может получать 12 тыс. Ключей / секунду в одном потоке. APC вернул 90K / секунду. Однако, если вы используете многопоточность или «multi_get» с memcache, это очень близко к производительности APC.

Тест выполнялся на скорости 1 Гб в секунду на slicehost.

10
задан niton 17 April 2015 в 00:37
поделиться

2 ответа

Я не уверен, что вы можете это сделать, но что-то похожее будет:

В Ruby 1.8.6:

a = lambda { |my_proc|
  puts 'in a'
  my_proc.call
}

a.call(lambda { puts "in a's block" })

В Ruby 1.9.1 вы можете иметь параметры блока

a = lambda { |&block|
  puts 'in a'
  block.call
}

a.call { puts "in a's block" }
8
ответ дан 3 December 2019 в 22:00
поделиться

Вы можете вызвать блок, который похож на уступку.

a = lambda {|&block| block.call if block}
a.call {print "hello"}

Обратите внимание, что

a.call

не вернет ошибку.

8
ответ дан 3 December 2019 в 22:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: