Защо Java програмите са бавни или стартират бавно?
2 отговора
269 прегледа
Защо Java програмите са бавни или стартират бавно?
Някъде прочетох, че при стартирането на дадена програмка, писана на Джава, се разархивирали разни .jar файлове и затова.
Наистина се усеща, че Java програмите стартират по-бавно в сравнение с .NET например... Каква е причината?
Наистина се усеща, че Java програмите стартират по-бавно в сравнение с .NET например... Каква е причината?
Re: Защо Java програмите са бавни или стартират ба
Здрасти,
Скоростта на стартиране на една Java програма в голяма степен зависи от следните неща за които зная:
- Производителя на Java машината. Различните вендори правят различни Java-и.
- Версията на Java машината. От версия до версия Sun все повече подобряват старт времето.
- Самата Java програма. Програмиста има пълен контрол колко бързо програмата му да се стартира. Това се прави както със старт параметрите на виртуалната машина така и със планиране на старт последователността в самата програма. Последното е особено важно за тежки графични програми.
- Предполагам че и операционната система оказва влияние, но не бих очаквал да е осезателно.
Това е за което се сещам. Никакви jar-ове не се разарфивират, поне не съм забелязал. На не говорим че може да няма въобще jar-ове или да не са компресирани.
И накрая усещането че Java програмите се зареждат по-бавно от .НЕТ е субективно. За да си сигурен че е така трябва да имаш 2 напълно еднакви програми едната на .НЕТ другата на Java (което е невъзможно) и да им измериш времената.
Толкоз от мен засега. Java е хубава платформа и .НЕТ е хубава платформа. Лошата слава идва от програмистите които пишат боклуци.
Поздрави,
Лук
Скоростта на стартиране на една Java програма в голяма степен зависи от следните неща за които зная:
- Производителя на Java машината. Различните вендори правят различни Java-и.
- Версията на Java машината. От версия до версия Sun все повече подобряват старт времето.
- Самата Java програма. Програмиста има пълен контрол колко бързо програмата му да се стартира. Това се прави както със старт параметрите на виртуалната машина така и със планиране на старт последователността в самата програма. Последното е особено важно за тежки графични програми.
- Предполагам че и операционната система оказва влияние, но не бих очаквал да е осезателно.
Това е за което се сещам. Никакви jar-ове не се разарфивират, поне не съм забелязал. На не говорим че може да няма въобще jar-ове или да не са компресирани.
И накрая усещането че Java програмите се зареждат по-бавно от .НЕТ е субективно. За да си сигурен че е така трябва да имаш 2 напълно еднакви програми едната на .НЕТ другата на Java (което е невъзможно) и да им измериш времената.
Толкоз от мен засега. Java е хубава платформа и .НЕТ е хубава платформа. Лошата слава идва от програмистите които пишат боклуци.
Поздрави,
Лук
Re: Защо Java програмите са бавни или стартират ба
eфp. Лyk е прав - скороста на стартиране може да се tweak-не. И също че java е по-добре от .net :) Всъщност обаче се разархивират разни jar-ове, напр. всичко от java.lang.* се load-ва от rt.jar, но по-добре така, октолкото jdk-то да преставлява скупщина от много на брой дребни на размер .class файлченца.
Но скоростта на стартиране не е толкова критична колкото скоростта към клоято клони изпълнението на JVM няколко минути след стартирането й - за тази цел има (напоследък много развили се) самонагаждащи се jit-ове. Ако пък е desktop приложение и наистина е толкова критично, има разни техники - memory template на стартирала JVM, или пък JVMто да стои постоянно пуснато и проложението просто да си крие и показва прозорците.
И все пак си мисля че по-големия проблем на java е паметта (като RAM), а не процесорното време...
Но скоростта на стартиране не е толкова критична колкото скоростта към клоято клони изпълнението на JVM няколко минути след стартирането й - за тази цел има (напоследък много развили се) самонагаждащи се jit-ове. Ако пък е desktop приложение и наистина е толкова критично, има разни техники - memory template на стартирала JVM, или пък JVMто да стои постоянно пуснато и проложението просто да си крие и показва прозорците.
И все пак си мисля че по-големия проблем на java е паметта (като RAM), а не процесорното време...