Search This Blog

Saturday, May 17, 2014

Eclipse - ADT needs update

Once again needed to do an update for Android SDK in Eclipse…. then Eclipse wouldnt start saying the ADT needed updating… couldn’t remember how… thankfully Stackoverflow to the rescue….


For some reason ADT (Eclipse) won't pick up on the fact that it does in fact need to be updated. Since the built in tools for updating are failing you you'll have to work around them. On the Help menu instead of selecting Check for Updates instead pick Install New Software (so Help > Install New Software).

On the Available Software screen in the Work With dropdown provide: if it's not already available. You should see a list of options including Developer Tools. Check everything that you want to update. In the list of checkboxes below uncheck "Contact all update sites during install to find required software."


Monday, May 12, 2014

Computer languages and processing speed


Interesting article… link =>   Some Languages are Faster



“JIT compilation is typically faster than traditional interpreting. However, it generally can't compete with conventional ahead-of-time compilation. AOT compilation can be slow, with compilers spending considerable time to optimize the code to the best of their ability. They can afford to do this because nobody is actually waiting for the compilation to take place. JIT compilation, however, happens at runtime, with a user waiting at the keyboard for the program to actually run. This limits the time that can be spent optimizing. Techniques such as performing additional optimization on a background thread and making use of modern multicore processors can go some way toward closing this gap.

In principle, JIT compilation can offer performance benefits over conventional compilation. A conventionally compiled program generally has to be quite conservative in some ways. Microsoft can't easily compile Windows to, for example, take advantage of the latest AVX instructions found in newer Intel and AMD processors, because Windows has to run on processors that don't support AVX. A JIT compiler, however, knows exactly the hardware it will be used on, and so can take maximal advantage of it.”

- - - - - - - -


“Another common technique is the use of bytecode. Bytecode-based platforms, including Java and .NET, have a traditional compilation process, but instead of generating executable machine code, the compiler generates bytecode, a kind of machine code designed not for real hardware, but for an idealized virtual machine. This bytecode can then be interpreted or JIT compiled when the program is actually run.

Generally, the performance of these bytecode systems is somewhere between interpreted ones and compiled ones. The bytecode is easier to JIT compile and optimize at runtime, giving an advantage over interpreters, but it still doesn't enable the same optimization effort as the compiler.”

- - - - - - - -

“Technically, the use of a compiler or an interpreter is not a property of the language itself. There are various projects that, for example, create interpreters for C, a language that's traditionally compiled. JavaScript has gone from simple interpreters to complex JIT compilers to get better performance.”

- - - - - - - -

“C++ is essentially always going to be compiled ahead of time. So too is Fortran. C# and Java are almost always going to be compiled to bytecode and then JIT compiled at runtime. Python and Ruby are almost always going to be interpreted. This tends to create a performance hierarchy: C++ and Fortran are faster than Java and C#, which in turn are faster than Python and Ruby.”