MS Velocity против Memcached для Windows?

Это специфично для реализации, но ваш интерпретатор, вероятно, интерполирует константы времени компиляции, но не результаты выражений во время выполнения.

В дальнейшем я использую CPython 2.7.3.

Во втором примере выражение "strin"+"g" оценивается во время компиляции и заменяется на "string". Это приводит к тому, что первые два примера ведут себя одинаково.

Если мы рассмотрим байт-коды, мы увидим, что они точно такие же:

  # s1 = "string"
  2           0 LOAD_CONST               1 ('string')
              3 STORE_FAST               0 (s1)

  # s2 = "strin" + "g"
  3           6 LOAD_CONST               4 ('string')
              9 STORE_FAST               1 (s2)

Третий пример включает в себя прогон -time concatenation, результат которого не будет автоматически интернирован:

  # s3a = "strin"
  # s3 = s3a + "g"
  4          12 LOAD_CONST               2 ('strin')
             15 STORE_FAST               2 (s3a)

  5          18 LOAD_FAST                2 (s3a)
             21 LOAD_CONST               3 ('g')
             24 BINARY_ADD          
             25 STORE_FAST               3 (s3)
             28 LOAD_CONST               0 (None)
             31 RETURN_VALUE        

Если вы должны вручную intern() получить результат третьего выражения, вы получите тот же объект, что и раньше:

>>> s3a = "strin"
>>> s3 = s3a + "g"
>>> s3 is "string"
False
>>> intern(s3) is "string"
True
33
задан Community 23 May 2017 в 11:49
поделиться

3 ответа

Мы недавно сделали изрядное количество сравнения Velocity и Memcached. В ореховой скорлупе мы нашли, что Скорость была 3x - 5x медленнее, чем Memcached, и (еще более кардинально) это в настоящее время не имеет поддержки мультиполучить операции. Таким образом, в данный момент я рекомендовал бы идти с Memcached. Кроме того, другой урок, который мы извлекли, был то, что самая медленная операция в распределенном кэшировании является сериализацией и десериализацией (по крайней мере, в ASP.NET). Незавершенный кэш ASP.NET является порядком величин быстрее. Таким образом, необходимо выбрать кэширующиеся стратегии намного более тщательно.

22
ответ дан Jan Zich 23 May 2017 в 21:49
поделиться

Если Вы не возражаете платить за лицензию, Вы можете использование Масштабировать горизонтально Сервер состояния, о котором я говорю в моем ответе на подобный вопрос здесь . Они имеют и 32-и 64-разрядные версии.

РЕДАКТИРОВАНИЕ: Несмотря на название продукта, это обрабатывает и Состояние сеанса и распределенное кэширование.

2
ответ дан Community 23 May 2017 в 21:49
поделиться

Memcached имеет некоторые библиотеки с открытым исходным кодом, если я не ошибаюсь поэтому, если Вы хотите пойти путем на 64 бита, Вы не можете просто перекомпилировать?

я оценил Скорость, когда она сначала прибыла, но пришла к выводу, что это было немного не разработано на том этапе. Способность выполнить memcached на серверах не-Windows является также премией.

1
ответ дан mjallday 23 May 2017 в 21:49
поделиться
Другие вопросы по тегам:

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