1.
A diagram of Software Development
Process including performance phase :
2.
The following list is the types
of questions the performance requirements we came up with in analysis phase `should
answer:
a)
What is the expected throughput
of the application?
b)
What is the expected latency
between a stimulus and a response to that stimulus?
c)
How many concurrent users or
concurrent tasks shall the application support?
d)
What is the accepted throughput
and latency at the maximum number of concurrent users or concurrent tasks?
e)
What is the maximum worst case
latency?
f)
What is the frequency of
garbage collection induced latencies that will be tolerated?
3.
There are two commonly accepted
approaches to performance analysis: top down or bottom up. Top down, as the
term implies, focuses at the top level of the application and drills down the
software stack looking for problem areas and optimization opportunities. In
contrast, bottom up begins at the lowest level of the software stack, at the
CPU level looking at statistics such as CPU cache misses, inefficient use of
CPU instructions, and then working up the software stack at what constructs or
idioms are
used
by the application. The top down approach is most commonly used by application
developers. The bottom up approach is commonly used by performance specialists
in situations where the performance task involves identifying performance
differences in an application on differing platform architectures, operating
systems, or in the case of Java differing implementations of Java Virtual
Machines.
4.
Whatever the cause that
stimulates the performance tuning activity, monitoring the application while it
is running under a load of particular interest is the first step in a top down
approach. This monitoring activity may include observing operating system level
statistics, Java Virtual Machine (JVM) statistics, Java EE container
statistics, and/or application performance instrumentation statistics. Then
based on what the monitoring information suggests you begin the next step such
as tuning the JVM’s garbage collectors, tuning the JVM’s command line options,
tuning the operating system or profiling the application.
5.
The bottom up approach is also
frequently used when it is not possible to make a change to the application’s
source code. In the bottom up approach, the gathering of performance statistics
and the monitoring activity begin at the lowest level, the CPU. The number of
CPU instructions, often referred to as path
length
and the number CPU caches misses tend to be the most
commonly observed statistics in a bottom up approach. The focus of the bottom
up approach is usually to improve the utilization of the CPU without making
changes to the application.
6.
In cases where the application
can be modified, the bottom up approach may result in making changes to the
application. These modifications may include a change to the application source
code such as moving frequently accessed data near each other so they can be
accessed on the same CPU cache line and thus not having to wait to fetch the
data from memory.
7.
The operating system views each
of the hardware threads per core as a processor. An important distinction of
multiple hardware threads CPU is only one of the multiple threads per core
executes on a given clock cycle. When a long latency event occurs, such as a
CPU cache miss, if there is another runnable hardware thread in the same core, that
hardware thread executes on the next clock cycle. In contrast, other modern
CPUs with a single hardware thread per core, or even hyperthreaded cores, will
block on long latency events such as CPU cache misses and may waste clock
cycles while waiting for a long latency event to be satisfied. In other modern
CPUs, if another runnable application thread is ready to run and no other
hardware threads are available, a thread context switch must occur before
another runnable application thread can execute. Thread context switches
generally take hundreds of clock cycles to complete. Hence, on a highly
threaded application with many threads ready to execute, the “multiple hardware
threads per core” type of processors have the capability to execute the
application faster as a result of their capability to switch to another
runnable thread within a core on the next clock cycle. The capability to have
multiple hardware threads per core and switch to a different runnable hardware
thread in the same core on the next clock cycle comes at the expense of a CPU
with a slower clock rate.
8.
When it comes to choosing a
computing system, if the target application is expected to have a large number
of simultaneous application threads executing concurrently, it is likely this
type of application will perform and scale better on a bigger number of
hardware threads per core type of processors than a smaller number of hardware
threads per core type of processor. In contrast, an application that is
expected to have a small number of application threads, will likely perform better
on a higher clock rate, smaller number of hardware threads per core type of
processor than a slower clock rate “bigger number of hardware threads per core
type of processor”.
- 大小: 31.3 KB
分享到:
相关推荐
Strategies & Methodologies of testing.pdf
Games, Strategies, and Decision Making--Joseph E. Harrington, Jr.
C++ Strategies.and.Tactics C++ 编程惯用法--高级程序员常用方法和技巧
The participants in the "C++ Strategies and Tactics" seminars I presented at several conferences helped inspire this book and refine its ideas. Other important ideas came from Tom Cargill, John ...
Control Strategies for Advanced Driver Assistance Systems and Autonomous Driving Functions is a collection of articles by international experts in the field representing theoretical and application-...
Evolutionary Programming and Evolution Strategies Similarities and Differences
c++ strategies and tactics高清英文原版,和大家分享。
Algorithmic Trading Winning Strategies and Their Rationale
High-Frequency Trading A Practical Guide to Algorithmic Strategies and Trading Systems
C++经典图书:c++ strategies and tactics c++ strategies and tactics
java 平台性能战术与策略 Java Platform Performance Strategies and Tactics <br>精心收藏的资料。涉及java性能的方方面面。
C++ Optimization Strategies and Techniques
IT Security, Cybersecurity, Information Assurance, and Information Systems Security, this series features a comprehensive, consistent treatment of the most current thinking and trends in this critical...
simulator of relay strategies and power allocation in a cooperative cellular network
OpenACC for Programmers Concepts and Strategies 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
Artificial Intelligence Structures and Strategies for Complex Problem Solving 5th Edition
Artificial Intelligence Structures and Strategies for Complex Problem Solving
网站下载的关于 C++ 性能 优化的,很不错 作者是 Pete Isensee,微软的XNA 游戏平台开发主管。内有各种代码及算法上的优化比较和统计,还有STL各种容器类的使用效率参考表,希望对大家有用。
OpenACC for Programmers Concepts and Strategies 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除