Я просто слушал лекцию на Coursera (https://www.coursera.org/saas/)), и профессор говорил, что все в Ruby является объектом, и что каждый вызов метода вызывает метод send для объекта, передавая ему несколько параметровЭто включает в себя числа, массивы и другие базовые классы.
Я пошел в Google и искал критерии эффективности и обнаружил следующее: http://benchmarksgame.alioth.debian.org/u32/which-programs-are-fastest.html
Хотя это не шокирует, что скомпилированный языкбыстрее, чем интерпретируемый, разница в производительности между (Ruby, Python) и Java, например, шокирует.
Даже если есть способ скомпилировать код ruby (я не исследовал эту тему), я думаю, что эффективностьпроблема все еще будет существовать из-за основной «проблемы» в языке: базовые операции слишком тяжелы: 1 + 1 требует много больше циклов ЦП.
Я люблю Ruby. Я люблю аспект высокого уровняметапрограммирования, и я думаю, что это должно быть будущее, и я согласен, иногда нам нужно идти на компромиссЭто определенная вещь для того, чтобы быть более эффективной: я не вижу себя оптимизирующим мой код в сборке, чтобы сэкономить несколько лишних миллисекунд.Однако, когда мы делаем 1 + 1 в C, это не увеличивает экспоненциально количество времени, которое занимает базовая операция!
Мой вопрос: как вы, ребята, имеете дело с программами, интенсивно работающими?У нас есть проект Ruby on Rails, который мы разрабатывали уже около года, и сейчас мы приступаем к некоторому машинному обучению с обходом геолокации и установлением приоритетов.
Надеюсь, вы понимаете мои проблемы ипредложить разумные предложения: -)