最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Performance Tips and Tricks in .NET Applications(五
时间:2022-07-02 11:28:28 编辑:袖梨 来源:一聚教程网
What You Can Do
At every phase of development, there are several things you can do. With MC++, the design phase is perhaps the most important area, as it will determine how much work you end up doing and how much performance you get in return. When you sit down to write or port an application, you should consider the following things: Identify areas where you use multiple inheritance, templates, or deterministic finalization. You will have to get rid of these, or else leave that part of your code in unmanaged space. Think about the cost of redesigning, and identify areas that can be ported. Locate performance hot spots, such as deep abstractions or virtual function calls across managed space. These will also require a design decision. Look for objects that have been specified as stack-managed. Make sure they can be converted into ValueTypes. Mark the others for conversion to heap-managed objects.
During the coding stage, you should be aware of the operations that are more expensive and the options you have in dealing with them. One of the nicest things about MC++ is that you come to grips with all the performance issues up front, before you start coding: this is helpful in paring down work later on. However, there are still some tweaks you can perform while you code and debug.
Determine which areas make heavy use of floating point arithmetic, multidimensional arrays or library functions. Which of these areas are performance critical? Use profilers to pick the fragments where the overhead is costing you most, and pick which option seems best: Keep the whole fragment in unmanaged space. Use static casts on the library accesses. Try tweaking boxing/unboxing behavior (explained later). Code your own structure.
At every phase of development, there are several things you can do. With MC++, the design phase is perhaps the most important area, as it will determine how much work you end up doing and how much performance you get in return. When you sit down to write or port an application, you should consider the following things: Identify areas where you use multiple inheritance, templates, or deterministic finalization. You will have to get rid of these, or else leave that part of your code in unmanaged space. Think about the cost of redesigning, and identify areas that can be ported. Locate performance hot spots, such as deep abstractions or virtual function calls across managed space. These will also require a design decision. Look for objects that have been specified as stack-managed. Make sure they can be converted into ValueTypes. Mark the others for conversion to heap-managed objects.
During the coding stage, you should be aware of the operations that are more expensive and the options you have in dealing with them. One of the nicest things about MC++ is that you come to grips with all the performance issues up front, before you start coding: this is helpful in paring down work later on. However, there are still some tweaks you can perform while you code and debug.
Determine which areas make heavy use of floating point arithmetic, multidimensional arrays or library functions. Which of these areas are performance critical? Use profilers to pick the fragments where the overhead is costing you most, and pick which option seems best: Keep the whole fragment in unmanaged space. Use static casts on the library accesses. Try tweaking boxing/unboxing behavior (explained later). Code your own structure.
相关文章
- 崩坏星穹铁道白厄抽几命好-白厄星魂抽取建议 07-12
- 几款流行的HTML5 UI框架比较(小结) 07-12
- 如何用ps把照片撕掉一半 PS快速制作照片撕裂效果教程 07-12
- 无畏契约源能行动夜露技能解析 夜露技能详解 07-12
- Greenshift Page Builder v11.8 汉化版 完整站点页面生成器(含组件) 07-12
- 朋友圈的发圈以及文案的心得 07-12