Site banner
.
Home Forums Blogs Articles Photos Videos Contact FAQ                    
.
.
Wisdom Archive
Body Mind and Soul
Faith and Belief
God and Religion
Law of Attraction
Life and Beyond
Love and Happiness
Peace of Mind
Peace on Earth
Personal Faith
Spiritual Festivals
Spiritual Growth
Spiritual Guidance
Spiritual Inspiration
Spirituality and Science
Spiritual Retreats
More Wisdom
Buddhism Archives
Hinduism Archives
Sustainability
Theology Archives
Even more Wisdom
2012 - Year 2012
Affirmations
Aura
Ayurveda
Chakras
Consciousness
Cultural Creatives
Diksha (Deeksha)
Dream Dictionary
Dream Interpretation
Dream interpreter
Dreams
Enlightenment
Essential Oils
Feng Shui
Flower Essences
Gaia Hypothesis
Indigo Children
Kalki Bhagavan
Karma
Kundalini
Kundalini Yoga
Life after death
Mayan Calendar
Meaning of Dreams
Meditation
Morphogenetic Fields
Psychic Ability
Reincarnation
Spiritual Art, Music & Dance
Spiritual Awakening
Spiritual Enlightenment
Spiritual Healing
Spirituality and Health
Spiritual Jokes
Spiritual Parenting
Vastu Shastra
Womens Spirituality
Yoga Positions
Site map 2
Site map


Dream Sharing Forum

at Global Oneness Community.

Share your dreams and let others help you with the interpretation!
Dream Sharing Forum



.

Optimization computer science - Automated and manual optimization

Optimization computer science - Automated and manual optimization: Encyclopedia II - Optimization computer science - Automated and manual optimization

Optimization can be automated by compilers or performed by programmers. Gains are usually limited for local optimization, and larger for global optimizations. Usually, the most powerful optimization is to find a superior algorithm. Optimizing a whole system is usually done by human beings because the system is too complex for automated optimizers. Grid computing or distributed computing aims to optimize the whole ...

See also:

Optimization computer science, Optimization computer science - Basis, Optimization computer science - Tradeoff, Optimization computer science - Different fields, Optimization computer science - Bottlenecks, Optimization computer science - When to optimize, Optimization computer science - Interpreted languages, Optimization computer science - Automated and manual optimization, Optimization computer science - Time taken for optimization, Optimization computer science - Techniques, Optimization computer science - Quotes, Optimization computer science - Subpages

Optimization computer science, Optimization computer science - Automated and manual optimization, Optimization computer science - Basis, Optimization computer science - Bottlenecks, Optimization computer science - Different fields, Optimization computer science - Interpreted languages, Optimization computer science - Quotes, Optimization computer science - Subpages, Optimization computer science - Techniques, Optimization computer science - Time taken for optimization, Optimization computer science - Tradeoff, Optimization computer science - When to optimize, Abstract interpretation, Goodness metric, Caching, Control flow graph, FX!32, Lazy evaluation, Low level virtual machine, Memoization, Memory locality, Performance analysis (profiling), Queueing theory, Simulation, Speculative execution, SSA form, Worst case execution time

Optimization computer science: Encyclopedia II - Optimization computer science - Automated and manual optimization



Optimization computer science - Automated and manual optimization

Optimization can be automated by compilers or performed by programmers. Gains are usually limited for local optimization, and larger for global optimizations. Usually, the most powerful optimization is to find a superior algorithm.

Optimizing a whole system is usually done by human beings because the system is too complex for automated optimizers. Grid computing or distributed computing aims to optimize the whole system, by moving tasks from computers with high usage to computers with idle time.

In this technique, programmers or system administrators explicitly change code so that the system performs better. Although it can produce better efficiency, it is far more expensive than automated optimizations.

First of all, it is extremely important to use a profiler to locate the bottleneck. Programmers usually think they have a clear idea of what the bottleneck is, but they are frequently completely wrong. Optimizing an unimportant piece of code will not help the overall program speed.

When the bottleneck is localized, optimization usually starts with a rethinking of the algorithm used in the program: more often than not, a particular algorithm can be specifically tailored to a particular problem, yielding better performance than a generic algorithm. For example, the task of sorting a huge list of items is usually done with a quicksort routine, which is one of the most efficient generic algorithms. But if some characteristic of the items is exploitable (for example, they are already arranged in some particular order), a different method can be used, or even a custom-made sort routine.

After one is reasonably sure that the best algorithm is selected, code optimization can start: loops can be unrolled (for lower loop overhead, although this can often lead to lower speed, due to overloading the processor's instruction cache), data types as small as possible can be used, integer arithmetic can be used instead of a floating-point one, and so on.

Performance bottlenecks can be due to the language rather than algorithms or data structures used in the program. Sometimes, a critical part of the program can be re-written in a different, faster programming language. For example, it is common for very high-level languages like Python to have modules written in C for greater speed. Programs already written in C can have modules written in assembly. Programs written in D can use the inline assembler.

Rewriting pays off because of a law known as the 90/10 law, which states that 90% of the time is spent in 10% of the code, and only 10% of the time in the remaining 90% of the code. So optimizing just a small part of the program can have a huge effect on the overall speed.

Manual optimization often has the side-effect of undermining readability. Thus code optimizations should be carefully documented and their effect on future development evaluated.

The program that does the automated optimization is called an optimizer. Most optimizers are embedded in compilers and operate during compilation. Optimizers often can tailor the generated code to specific processors.

Today, automated optimizations are almost exclusively limited to compiler optimization.

Some high-level languages (Eiffel, Esterel) optimize their programs by using an intermediate language.

Other related archives

90/10 law, Abstract interpretation, C, Caching, Compiler optimization, Control flow graph, D, Donald Knuth, Eiffel, Esterel, FX!32, Grid computing, Internet, JavaScript, Lazy evaluation, Load balancing, Low level virtual machine, Memoization, Memory locality, Optimization of Java, PHP, Pareto principle, Performance analysis, Python, Queueing theory, Rob Pike, SSA form, Simulation, Speculative execution, Tony Hoare, Worst case execution time, algorithm, algorithms, anti-pattern, assembly, bottleneck, cache, compiler bugs, compiler optimization, computer architecture, computer program, computer programming, computers, computing, debug, development stage, distributed computing, efficiency, high-level, inline assembler, instruction cache, intermediate language, just-in-time compilers, layer 4 router, maintainability, operations research, performance, profiler, programming language, prototype, quicksort, readability, settings, tradeoff, tradeoffs, transparently, whitespace



Adapted from the Wikipedia article "Automated and manual optimization", under the G.N U Free Docmentation License. Please also see http://en.wikipedia.org/wiki

More material related to Optimization Computer Science can be found here:
Main Page
for
Optimization Computer Sci...
Index of Articles
related to
Optimization Computer Sci...


« Back








Search the Global Oneness web site
Global Oneness is a huge, really huge, web site. Almost whatever you are searching for within health, spirituality, personal development and inspirationals - you will find it here!
Google
 
 

Rate this article!

Please rate this article with 10 as very good and 1 as very poor.

.








Sneak-Peek of Global Oneness Community

Hi friend! The Global Oneness Community, the place for information and sharing about Oneness is not really launched yet (you will see there is still some clean up to do) ...but it is now open for a sneak-peek! And if you wish - please register and become one of the very first members to do so! Jonas

Forum Home, Articles, Photo Gallery, Videos, News, Sitemap
...and much more!


Dream Sharing Forum

at Global Oneness Community.

Share your dreams and let others help you with the interpretation!
Dream Sharing Forum



Forum
Articles
Images Pictures
Videos
News
Sitemap




 

 

 

 

 


 








  » Home » » Home »