LINUX.ORG.RU

Garnet - кэш от Microsoft, написан на C#, делает и Redis, и Dragonfly

 , , garnet, ,


0

5

Как видно из бенчмарков, это сейчас вообще самый быстрый сервер структур данных на всём диком западе:

https://microsoft.github.io/garnet/docs/benchmarking/results-resp-bench

Парктически полностью совместим с Redis на уровне API, но при этом:

  • Имеет либеральную MIT лицензию, как и все последние крупные проекты MS, и этим крайне выгодно отличается от Redis
  • Написан на C#, и позволяет удобно расширять сервер
  • Делает по производительности и Redis, написанный на Си, и Dragonfly написанный на C++

Последний пункт особенно забавен, надеюсь хоть это у крестолюбцев в голове что-либо прочистит, и вот это дебильное мнение что «сипласплас эта быстра», а также глупые наезды на GC, наконец канут в лету. Кресты в современном мире нахер не нужны, и никакой даже особой производительности не дают. Да и Си, в принципе, тоже нигде не нужен выше уровня ядра.

Я кстати, в свое время написал на C# видеостриминг-сервер, и клиент, практически не используя кресты(было немного C++/CLI для связи с COM итд), и проблем с производительностью там не было. Но что я - вон целый MS Research делает продукты вон какого уровня.

★★

Ответ на: комментарий от sanyo1234

Спасибо.

ИИ как всегда зачёсывает о различных сценариях, что есть - то есть, но вот сложные проекты я бы потестил на ручном управлении памяти и со сборщиком. И вдруг окажется, что серьёзных проектов всего пара-тройка. И то - говно браузеры. А остальное в мире написано на Java/Lisp.

anonymous
()
Ответ на: комментарий от anonymous

Я правильно понял, что никаких реальных судебных дел о производных продуктах не было, а ваши опасения основаны на авторитетном мнении из интернета?

Мнение claude.ai:

There have been several high-profile cases where tangible goods produced using pirated software were seized or destroyed by law enforcement authorities. Here are some examples:

    Clothing and Apparel Manufacturing:
        In 2010, U.S. federal authorities seized and destroyed over 32,000 articles of clothing, including t-shirts and hats, that were manufactured using pirated versions of Adobe design software.
        In 2014, Italian police confiscated and destroyed over 10,000 counterfeit clothing items, including jackets and jeans, that were produced using illegally copied design software.
    Film and Video Production:
        In 2005, the U.S. government seized and destroyed several master copies of films that were edited using pirated versions of Adobe Premiere and other video editing software.
        In 2010, Canadian authorities seized and destroyed over 90,000 counterfeit DVDs that were produced using illegally copied video editing and duplication software.
    Architectural and Engineering Designs:
        In 2009, Chinese authorities destroyed a large number of architectural models and design plans that were created using pirated versions of AutoCAD and other design software.
        In 2012, U.S. federal agents seized and destroyed several 3D-printed prototype models that were designed using illegally obtained CAD software.
    Music and Audio Production:
        In 2011, German police confiscated and destroyed thousands of illegally produced music CDs and DVDs that were created using pirated audio editing and mastering software.
        In 2015, British authorities seized and destroyed a large quantity of counterfeit music albums that were manufactured using pirated music production software.
    Software and Video Game Development:
        In 2008, U.S. authorities seized and destroyed several thousand counterfeit video game discs that were replicated using pirated disc burning software.
        In 2013, Chinese authorities destroyed a large number of illegally produced software packages that were compiled using pirated development tools and compilers.

These cases highlight the efforts of law enforcement agencies and copyright holders to combat the illegal use of pirated software in various industries. 
sanyo1234
()

Ручное управление памятью в сложных проектах:

така на Firefox, позволившая обойти sandbox-изоляцию и выполнить код в системе при открытии специально оформленной страницы (премия 100 тысяч долларов). Уязвимость вызвана ошибкой, позволившей прочитать и записать данные в область за границей буфера, выделенного для объекта JavaScript, а также возможностью подстановки обработчика события в привилегированный JavaScript-объект. По горячим следам разработчики из Mozilla оперативно опубликовали обновление Firefox 124.0.1 с устранением выявленных проблем.

C++ во всей красе.

anonymous
()

MS Research делает продукты

Кому-то повезло, MS купила у него стартап.

Я кстати, в свое время написал на C#

Кого-то не заметили и он бесится.

anonymous
()
Ответ на: комментарий от lovesan

Прям магия какая-то, вот взяли C++ и стало «быстра»

Я как-то в молодости баловался этим вашим C#, и вот набросав одну библиотеку на нем решил для интереса переписать на С++ и вот реально был в шоке от того насколько реализация на плюсах быстрее. Не поверишь, но твои с сарказмом слова «прям магия какая-то» - это первая моя мысль тогда.

mbivanyuk ★★★★★
()
Ответ на: комментарий от sanyo1234

Я как-то упустил из вида, что вы пытаетесь накормить меня сладким хлебом, испеченным нервосетью. Это LOL. Вы можете дать первоисточники, откуда нервосеть все это надергала, или это художественное произведение от первого до последнего слова?

anonymous
()
Ответ на: комментарий от mbivanyuk

Я как-то в молодости баловался этим вашим C#,

Как давно?

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

С тех пор в C# появился native AOT compiler, который генерит машинный код, сравнимый с сишным. Хотя JIT его порой даже обгоняет :)

Но зато Native full AOT компилятор позволяет лучше защитить свою интеллектуальную собственность.

sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 2)
Ответ на: комментарий от alysnix

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

https://github.com/jinyus/related_post_gen

В первом случае результаты плюсов и шарпа почти одинаковые, а для multicore шарп вроде бы как почти лучший, не считая Dlang?

В тесте Time (5k posts) C# и вовсе абсолютный лидер!

C# Concurrent (AOT) 4.33 ms

Multicore Results

LanguageTime (5k posts)20k posts60k postsTotal
D Concurrent (v2)5.81 ms44.68 ms262.69 ms313.19 ms
C# Concurrent (JIT)7.55 ms45.08 ms369.55 ms422.17 ms
C# Concurrent (AOT)4.33 ms51.95 ms389.07 ms445.35 ms
D Concurrent7.09 ms61.79 ms452.55 ms521.43 ms
Rust Concurrent4.66 ms56.88 ms492.16 ms553.71 ms
C++ Concurrent5.10 ms68.67 ms558.33 ms632.10 ms
Nim Concurrent5.32 ms68.15 ms568.41 ms641.88 ms
Go Concurrent5.82 ms77.11 ms637.31 ms720.24 ms
Julia Concurrent6.03 ms89.56 ms665.41 ms761.00 ms
F# Concurrent8.50 ms99.67 ms875.67 ms983.83 ms
Swift Concurrent10.69 ms119.00 ms986.94 ms1.12 s
F# Concurrent (AOT)8.50 ms128.33 ms1.13 s1.27 s
Java Concurrent (JIT)58.00 ms183.33 ms1.15 s1.39 s
Numba Concurrent19.67 ms173.20 ms1.28 s1.47 s
Java (GraalVM) Concurrent12.00 ms182.33 ms1.50 s1.69 s
sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 6)

Хе-хе, при этом, 1% кода ядра движка хранения, который определяет 99% производительности той базы, написаны как раз на C++. Автор даже не разобрался, как угорелый побежал обгаживать C++. Классический неосилятор.

anonymous
()
Ответ на: комментарий от anonymous

Хе-хе, при этом, 1% кода ядра движка хранения, который определяет 99% производительности той базы, написаны как раз на C++.

Так разве это плохо? Именно около 1% и должен составлять плюсовый код в проекте. Но ведь некоторые шизики пишут на плюсах даже GUI для полновесных десктопов (не масеньких одноплатников со 100 метрами оперативки, а именно десктопы с 4+ гигами рамы с производительным CPU).

sanyo1234
()
Ответ на: комментарий от sanyo1234

Так разве это плохо

Это очень хорошо, так и должно быть. Только это означает как раз превосходство C++ и ущербность шарпа, годящегося только для вспомогательных задач (кои как правило и составляют больше 90% всего кода проекта). И еще то, что афтар не разбирается ни в плюсах, ни в шарпе, ни в запилинге проектов типа сабжевой субд. Но писку на весь ЛОР.

anonymous
()
Ответ на: комментарий от anonymous

Это очень хорошо, так и должно быть. Только это означает как раз превосходство C++

Только в руках программистов по $10K/mo+ ?

и ущербность шарпа,

Опять только для них же?

годящегося только для вспомогательных задач (кои как правило и составляют больше 90% всего кода проекта).

Только для проектов, где нужна предельно высокая производительность за любые деньги? Когда корпорация готова переплачивать 1000% только лишь за прирост нескольких процентов производительности? Много таких работодателей?

Но писку на весь ЛОР.

C# позволяет в вашей терминологии очень сильно поднять уровень полезности большинства кодеров как по продуктивности, так и по производительности генерируемого кода.

sanyo1234
()
Ответ на: комментарий от sanyo1234

Только в руках программистов по $10K/mo+

Паря, ты о чем? Деньгами измеряется не сложность ЯП, а сложностьрешаемой задачи. Полно проектов копечных или вообще бесплатных игрулек, сетевых сервисов, всяких парсеров etc, хорошо так написанных на плюсах, написанных чуваками, которые явно профи в плюсах. Чуваки никаких муллеенов за это не получали, или вообще на фане писали. И есть мулленщики, которые на питоне пилят. Решенная задача стоит денег, а не программирование на ЯП.

anonymous
()
Ответ на: комментарий от anonymous

Решенная задача стоит денег, а не программирование на ЯП.

По фану обычно решаются небольшие по объёму задачи, иногда сложные (в том смысле, что далеко не каждый их может решить).

Но тащить на себе конкурентноспособный (например, по производительности) долгоиграющий большой и сложный проект может только организация с баблом для найма лучших из лучших, а в случае C++ такие кодеры далеко недешевы.

sanyo1234
()
Ответ на: комментарий от sanyo1234

Но тащить на себе конкурентноспособный (например, по производительности) долгоиграющий большой и сложный проект может только организация с баблом для найма лучших из лучших

Эта информация откуда?

а в случае C++ такие кодеры далеко недешевы.

А эта информация откуда?

И да, вы мне так и не ответили, где же заставляют программировать на C++.

eao197 ★★★★★
()
Ответ на: комментарий от lovesan

Нео, проснись, ты обгадился. В том коде ты тестируешь саллокаторы памяти, системный из libc vs GC-шный, а не ЯП-ы. Измени аллокатор для кода на плюсах, запили простейший велосипедный на пуле обьектов, результат сравняется или превзойдет другие. Начнешь кочевряжиться про оптимизации, добавишь себе очков неосилятора

anonymous
()

Наезды на C вида «молоток не хочет забивать гвозди!» Если ты не умеешь пользоваться инструментом, это не значит что инструмент плох, это значит что у тебя не хватает квалификации. Но мозгом нынче пользоваться немодно, а потому инструменты, требующие мозговой деятельности, всячески отторгаются.
Встречал я таких немало, «Оно говно, потому что говно!», а прочитать документацию, понять как оно работает — не, оно же говно!

Естественно Microsoft может нормально писать на своём C#, это логично. А теперь возьми код рандомного васяна, и если он не будет течь, значит будет падать.

А по поводу инструмента… Белки-истерички судорожно ищут замену инструменту, который внезапно решил, что хватит левым васянам зарабатывать на попенсорце и ничего не давать взамен. Вдвойне смешно, что предлагается альтернатива от копрорации, которая зарабатывает за счёт того самого опенсорца (пусть и инвестирует в него как финансы, так и ресурсы).

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Естественно Microsoft может нормально писать на своём C#, это логично. А теперь возьми код рандомного васяна, и если он не будет течь, значит будет падать.

Уж не хочешь ли ты сказать, что на Шарпе писать сложнее, чем на плюсах? Подразумевается при прочих равных условиях, т.е. чтобы обеспечить такой же уровень текучести и падучести.

sanyo1234
()
Ответ на: комментарий от sanyo1234

А что с этим тестом?

Не смотрел на конкурентную версию. Но если в однопоточной заменить использование .at() в do_work на обычный operator[], то у меня время исполнения для 5k падает с 30ms до 28ms.

Кроме того, в структуре RelatedPosts, какая-то странная пессимизация: зачем-то хранятся отдельные указатели на id и на tags, хотя можно было бы сохранить всего один указатель на исходный Post. На 5k выигрыша в производительности это не дает, но память экономит.

eao197 ★★★★★
()
Ответ на: комментарий от sanyo1234

Что это меняет?

Если говорить про ваше поведение, то тупизм и нежелание нормально отвечать на вопросы, меняет отношение к вам с нейтрального до «малолетний дебил» (с)

Хотите, чтобы с вами общались нормально, так ведите себя нормально.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Если говорить про ваше поведение, то тупизм и нежелание нормально отвечать на вопросы, меняет отношение к вам с нейтрального до «малолетний дебил» (с)

Так ведь это к вам в первую очередь относится.

К чему эта ваша попытка:

время исполнения для 5k падает с 30ms до 28ms.

улучшить производительность на 6%?

sanyo1234
()
Ответ на: комментарий от mord0d

Наезды на C вида «молоток не хочет забивать гвозди!»

https://nelua.io

Если ты не умеешь пользоваться инструментом,

Ты умеешь лучше, чем Eduardo Bart ?

это не значит что инструмент плох,

https://nelua.io/faq/

Why Nelua?

Nelua is being developed by a Lua lover who, after years of using Lua in game projects, wished for a Lua-flavored, efficient, simple language that was powerful at compile time and could replace C/C++ code in game projects

Nelua was created with the intent to make an efficient compiled language with syntax similar to Lua. It is one of the few programmable statically typed languages that uses powerful compile-time metaprogramming capabilities to generate efficient code. Nelua is developed by a game developer who uses it to make games


A note for C users

Nelua tries to expose most of C’s features without overhead, so expect to get near-C performance when coding in the C style; that is, using type notations, manual memory management, pointers, and records (structs).

The semantics are not exactly the same as C semantics, but they are close. There are slight differences (like initializing to zero by default) to minimize undefined behaviors and other differences to maintain consistency with Lua semantics (like integer division rounding towards negative infinity). However, there are ways to use C semantics when needed.

The preprocessor is much more powerful than C’s preprocessor because it is part of the compiler which runs in Lua. This means you can interact with the compiler during parsing. The preprocessor should be used for code specialization, making generic code, and avoiding code duplication.

Nelua compiles everything into a single readable C file. If you know C, it is recommended that you read the generated C code to learn more about exactly how the compiler works and what code it outputs

это значит что у тебя не хватает квалификации.

У Эдуарда тоже не хватает?

Но мозгом нынче пользоваться немодно,

По тебе очень заметно.

Мозгом пользуются те, кто меньше кодят на асме и больше на высокоуровневых ЯП. Только последний идиот считает высокоинтеллектуальной деятельностью копание лопатой.

а потому инструменты, требующие мозговой деятельности,

Рутинной и автоматизируемой по аналогии с кодингом в машкодах vs на ассемблере.

всячески отторгаются.

Потому что не все уподобляются тебе.

sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 1)
Ответ на: комментарий от sanyo1234

улучшить производительность на 6%?

К тому, что в коде есть явные места с пессимизаций.

Если вы посмотрите на результаты для Rust Concurrent и C++ concurrent в своей же таблице выше, то там разница всего 9%.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Если вы посмотрите на результаты для Rust Concurrent и C++ concurrent в своей же таблице выше, то там разница всего 9%.

IMHO вот это лидерство «я первый, быстрее на 1%» - это для детского сада. В первую очередь важны комплексные характеристики проекта, включая его безглючность, поддерживаемость, и т.п. А C++ по этим параметрам обычно проигрывает Шарпу многократно, и чем сильнее недофинансирование проекта, тем в большей степени это проявляется.

А разброс производительности в пределах +-10-30% вообще ни о чём для большинства проектов.

sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 1)
Ответ на: комментарий от sanyo1234

В первую очередь важны комплексные характеристики проекта, включая его безглючность, поддерживаемость, и т.п.

Пожалуйста, хватит бла-бла-бла. Я вам выше несколько вопросов задал. Вы собираетесь на них ответить?

eao197 ★★★★★
()
Ответ на: комментарий от eao197

И да, вы мне так и не ответили, где же заставляют программировать на C++.

Группа старпёров, которые всю жизнь занимались ручной генерацией эффективного кода, что за них сейчас в большинстве случаев неплохо делает C# автоматически, оголтело поливают шарп какахами, только чтобы он не вызведил этих клоунов на мороз.

Эта группировка вероятно пытается формировать и огораживать рынок крестоносцев в РФ, и не пускать туда шарпеев? LOL

sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 1)
Ответ на: комментарий от sanyo1234

оголтело поливают шарп какахами

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

eao197 ★★★★★
()
Ответ на: комментарий от sanyo1234

А причём тут вы?

При том, что вы общаетесь со мной. И пишете мне про хрен знает что, к чему я не имею отношения.

А так как вы при этом еще и намеренно игнорируете мои вопросы, то для меня вы просто очередной местный анонимный надмозг и, по совместительству, чудак на букву м. С чем вас и поздравляю.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

При том, что вы общаетесь со мной. И пишете мне про хрен знает что, к чему я не имею отношения.

А почему вы решили, что общаясь с вами, я должен писать только про вас? Сиплюсплюс вызывает нарцисизм?

sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 1)
Ответ на: комментарий от eao197

О, так поциент еще и читать не умеет. Ясно, понятно.

Сами то давно проверялись или вообще ни разу? (ведь абсолютно здоровых нет, есть только недообследованные):

Нарциссизм в психологии рассматривается как психическое отклонение, которое проявляется в преувеличенном мнении о собственной важности и уникальности, а также в стремлении к постоянному восхищению и подтверждению своего превосходства над другими. Это состояние может быть частью нарциссического расстройства личности (НРЛ), которое характеризуется убежденностью в собственной уникальности, особом положении и превосходстве над окружающими. Нарциссы обычно имеют высокие притязания, стремление к лидерству и могут использовать манипуляции для достижения своих целей. Отношения с нарциссом могут быть сложными из-за его склонности к идеализации и обесцениванию окружающих, а также из-за недостатка эмпатии и уважения к другим людям
sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 1)
Ответ на: комментарий от sanyo1234

Чисто прагматический подход с моей стороны.
Имеется какая-то технология, которую в любой момент могут
запретить использовать в России (и не только юридически).
Как-бы рискованно её использовать.

Forum0888
()
Ответ на: комментарий от Forum0888

Имеется какая-то технология, которую в любой момент могут запретить использовать в России (и не только юридически).

А какую из GCC/LLVM/Rust, etc. не могут запретить и почему?

sanyo1234
()

Последний пункт особенно забавен, надеюсь хоть это у крестолюбцев в голове что-либо прочистит, и вот это дебильное мнение что «сипласплас эта быстра», а также глупые наезды на GC, наконец канут в лету. Кресты в современном мире нахер не нужны, и никакой даже особой производительности не дают.

Ага. На плюсах можно написать тормозное ПО, вывод – плюсы тормознее сишарпа. Л – логика!

Берусь написать тормозное ПО на любом языке, дорого.

Интересно также, кто делал эти бенчмарки, домен microsoft.github.io наводит на мысли.

hobbit ★★★★★
()
Ответ на: комментарий от Forum0888

Чисто прагматический подход с моей стороны.

Имеется какая-то технология, которую в любой момент могут

запретить использовать в России (и не только юридически).

Как-бы рискованно её использовать.

Ты не боишься, что тебе анус могут запретить использовать?

hateyoufeel ★★★★★
()