Подтвердить что ты не робот

Какой клиент .NET Memcached вы используете, EnyimMemcached и BeITMemcached?

Похоже на EnyimMemcached (https://github.com/enyim/EnyimMemcached) и BeITMemcached (http://code.google.com/p/beitmemcached/) являются популярными библиотеками .NET Memcached. Оба являются достаточно активными проектами в разработке и имеют более тысячи загрузок. Попытка выяснить, какой из них использовать, но найти конкурирующие замечания! Я прочитал еще один связанный пост, но все же хочу попросить больше людей об этом, прежде чем принимать решение.

EnyimMemcached на главной странице проекта (https://github.com/enyim/EnyimMemcached), что

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

и

мы следуем спецификации протокола memcached строго так, как никто другой: даже ребята из memcached спрашивают нас, не понимают ли они что-то.

В то время как BeITMemcached претендует на свою вики-страницу проекта (http://code.google.com/p/beitmemcached/wiki/Features), которая

Мы провели обширное функциональное тестирование и тестирование производительности клиента Beit Memcached, и мы удовлетворены тем, что он работает так, как должен. Когда мы сравнили производительность с двумя другими клиентами, java-порт и клиент Enyim memcached, наш клиент потреблял наименьшие ресурсы и имел лучшую производительность, Он также строго следит за спецификациями протокола memcached, имеет самые memcached функции и все еще намного меньше в фактическом размере кода.

Итак, для тех, у кого есть опыт работы над этими или чем-то похожим, какой клиент вы выбрали, и, возможно, почему вы выбрали тот, который вы выбрали?

Спасибо,

Ray.

4b9b3361

Ответ 1

Мы протестировали оба и нашли Enyim наилучшим для нашего ожидаемого сценария использования: многие (но не миллионы) кэшированные объекты и миллионы запросов на получение кеша (средний веб-сайт concurrency load = 16-20 запросов.)

Наш коэффициент производительности определял время от запроса запроса на то, что объект инициализирован в памяти на вызывающем сервере. Обе библиотеки поддержали бы эту работу, но клиенту enyim было предпочтительнее в нашем тестировании.

Ответ 3

Клиент Eniym Store() иногда работает неправильно. Это происходит, когда ключ отсутствует в кеше, в большинстве случаев после перезапуска службы memcached. Эта конструкция:

        T val = _client.Get<T>(key);
        if (val == null)
        {
            // ... filling val variable ...
            var result = _client.Store(StoreMode.Add, key, val);
            // ... result can be false, sometimes ...
        }

работает 50/50. T является [Serializable].

Ответ 4

Я нашел Enyim, чтобы работать лучше всего. Он прост в использовании, надежный и быстрый:)