why is the running time of java so large compared to other languages,isn’t there any way to reduce it other than making the algorithm efficient!!
@zargus : Java is an interpreted language , so its slow , because the source code is not directly transformed to executable but instead to an intermediate byte code . So when your program is run , first the Java Virtual Machine (JVM ) is loaded which itself takes some time and then each line of your byte code is interpreted by the JVM and hence has its overhead .
The running time can be improved by JIT(Just In Time) compilation
You can read more about JIT here :
@vineetpaliwal can it be implemented in solving problems in codechef?
@zargus : No . Because in code chef you submit your source code , and it is up to them how to compiler and run your program .
Code Chef makes up for slow execution of Java program , by allowing twice the time for Java submissions as compared to what it gives to a C++ program .
Java is slow because of indirection - it does not interact directly with OS. There are more reasons too.
As Vineet has mentioned already - Java code is given twice the TL (Time Limit). But still you need to take care of 2 things-
- Use faster Input/Output strategy - for this you can refer to this or look at code of top programmers coding in Java.
- Think asymptotically - if you are getting TLE, you may want to recheck your logic and try to reduce complexity of code.