azsx писал(а):Памяти будет не хватать, будет юзать файл подкачки
Не будет. Это принято не афишировать, но для дефолтного запуска виртуальной машины отводится обычно строго определенное количество памяти. В Oracle JAVA порог ЕМНИП 128 мегабайт. Порог превышен - программа рухнула с соответствующим диагнозом. Чтобы забрать больше, нужно предварительно сказать виртуальной машине - сколько.
azsx писал(а):могу посчитать ... сколько памяти
Ровно так же как в Си вы на самом деле не можете заранее посчитать количество необходимой памяти, потому что не можете знать, сколько займут подключаемые динамические библиотеки, так и для JAVA вы не можете. Или можете? В чем разница то? И там и там некий довесок, который просто учитывается при расчете и всё.
Добавлено спустя 8 минут 34 секунды:
azsx писал(а):что java работает быстрее С, особенно на числодробительных задачах.
Термин "числодробительные задачи" пусть останется на совести того, кто его придумал. Если у него JAVA внезапно в разы выигрывает на сложных вычислениях с плавающей точкой - значит, в том, с чем сравнивается - неописуемый зоопарк из переменных разного типа и постоянные конверсии с приведением точности (или данные другого типа, например). Вряд ли что-то иное. Сравнивать математику floating pouint - достаточно бессмысленное занятие, в случае, когда сами данные представлены в виде, близком или совпадающем с машинным. На языках высокого уровня будет примерно одна и та же производительность - там практически нечему оптимизироваться. То же и с целочисленной математикой.
Ща можно на Visual C++ откомпилять программу с отладочными библиотеками, запустить, и радоваться, как она бурно сливает всем конкурентам. Особенно если где то в середине поставить breakpoint по условию анализа данных... Вот вам тоже метод тестирования, да.
Добавлено спустя 6 минут 5 секунд:
Кстати, вот такой вот замечательный тестировочный код:
- Код: Выделить всё
i:=0;
(тут ставим отметку времени)
for j:=0 to 100000 do
i:=i+1;
(тут радуемся быстроте исполнения)
(очень частый аналог в доморощенных тестах производительности, кста)
Казалось бы, подвох в чем? А в том, что этот цикл не обязан исполняться.
Если i после цикла нигде не используется, компилятор или исполняющая среда вправе похерить весь бессмысленный с точки зрения действий участок кода. Perl, например, похерит гарантированно. И можно потом радоваться, как он быстро исполнил "цикл с присвоением", не так ли?