Вопрос

Вопрос о Кассандра

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

У меня сложилось впечатление, что нет ничего быстрее, чем C / C ++, и что ядро базы данных не должно работать медленнее максимальной скорости и, конечно же, не использовать сборку мусора...

Кто-нибудь может объяснить мне, какой в этом возможный смысл / почему Cassandra может быть быстрее обычного SQL, который работает на C / C ++-коде?

Редактировать:
Извините за часть "Какого черта на земле", но для меня это действительно не имело никакого смысла.
Я забыл учесть, что базу данных, в отличие от обычных пользовательских программ garden-varitety, нужно запускать только один раз, а затем запускать в течение очень долгого времени, и, вероятно, также как единственную программу на сервере, что, очевидно, приводит к существенной разнице в производительности.

Я больше сравнивал / ссылался на "нефункциональную" (мягко говоря) налоговую программу Java, которую я использовал на момент написания (или, скорее, хотел бы использовать).

На самом деле, в отличие от использования Java для налоговых программ, использование Java для написания выделенной серверной программы имеет смысл.

Это было полезно?

Решение

Я вижу несколько причин:

  • Безопасность:проще писать защищенное программное обеспечение на Java, чем на C ++ (помните переполнение буфера?)
  • Производительность:это не НАСТОЛЬКО хуже.Это определенно хуже при запуске, но как только код запущен, это не имеет большого значения.На самом деле, вы должны помнить здесь важный момент:Java-код постоянно оптимизируется виртуальной машиной, поэтому в некоторых случаях он становится быстрее, чем C ++

Другие советы

Что вы имеете в виду под C ++?Ручная кодированная сборка была бы быстрее, если бы у вас было в запасе несколько десятилетий.

Какого черта кому - то понадобилось писать движок базы данных на JAVA ?

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

У меня сложилось впечатление, что нет ничего быстрее, чем C / C ++, и что ядро базы данных не должно быть медленнее максимальной скорости и конечно, не использовать сбор мусора ...

Ваше впечатление неверно.C / C ++ не обязательно быстрее Java, и современные сборщики мусора играют в этом большую роль, потому что они позволяют создавать объекты невероятно быстро.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top