Почему Cassandra была записана в Java? [закрытый]

Вопрос о Cassandra

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

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

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

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

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

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

33
задан Stefan Steiger 2 June 2010 в 18:19
поделиться

5 ответов

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

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

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

105
ответ дан 27 November 2019 в 17:21
поделиться

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

14
ответ дан 27 November 2019 в 17:21
поделиться

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

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

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

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

33
ответ дан 27 November 2019 в 17:21
поделиться

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

7
ответ дан 27 November 2019 в 17:21
поделиться
Другие вопросы по тегам:

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