
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
应用软件开发性能问题是需要软件开发程序员长期关注的问题之一,下面我们就通过案例分析来简单了解一下。Java编程应用软件性能与优化方法。
1、应用性能与系统性能
性能工程的一个重要方面是对应用性能和系统性能进行区分。
当谈及应用程序的性能时,我们指的是一个程序或一组程序单独运行的性能(没有其他程序在并行运行)。在这种情况下,我们通常使用*profiler*观察程序的性能,并通过修改程序的源代码来解决出现的问题。本网站上的文章大多涉及应用程序的性能。相反,当谈论系统性能时,我们指的是整个系统的性能:所有不同的进程在特定硬件上一起运行。程序可能在无负载的系统中可能运行良好,但有时,当该进程与其他进程一起运行时,问题就会出现。在这种情况下,问题的出现主要是因为某项硬件资源被耗尽了。CPU、内存带宽、硬盘带宽或网络带宽。例如,如果计算机的物理内存用完了,进程将开始将内存交换到硬盘上。这可以看作是系统性能的急剧下降的原因。
系统性能作为一门学问,在服务器领域非常重要,因为许多不同的进程都在同一硬件上执行。用于调试系统性能的工具与用于调试应用程序性能的工具完全不同:各种可视化的工具,测量CPU使用率、CPU执行中的异常情况、IO子系统的使用率、内存使用率等。而修复方法也是不同的:改变系统的配置、删除进程或给CPU增加冷却器都有助于解决问题。
应用和系统性能问题之间的主要区别是应用性能问题持续地再现,而系统性能问题只在适当的情况下再现。一般来说,系统性能问题更难调试,但更容易修复。
2、延迟和吞吐量
当我们说"某个东西很慢"时,取决于上下文,我们可能有两种意思。可以指我们的程序没有及时响应其输入,也可以指我们的程序处理数据的速度不令人满意。不要理所应当的认为,这两个句子听起来可以互换,但在更深层次上,它们是不同的。
在这里,响应时间并不关键。模型可能需要训练几个小时,甚至几天。我们感兴趣的是处理率:每单位时间处理的数据量应该是尽可能大的。希望任务能尽快完成,但在给定的时间内做出回应并不是我们的要任务,我们要提高的是原始速度。
在这种情况下,我们正在优化吞吐量:我们正尝试在每单位时间内处理尽可能多的数据。对延迟敏感的系统在实时系统(如汽车或航空系统)、高频交易系统(系统必须尽快对来自市场的数据作出反应)或游戏中很常见。吞吐量敏感的系统在其他地方也很常见:视频渲染、神经网络训练等。
延迟敏感的系统建立在吞吐量敏感的系统之上。在实现大吞吐量之后,整个系统,包括硬件、操作系统、网络堆栈等,都会针对延迟进行优化。
在结束这个话题之前还有一件事:延迟和吞吐量在一定程度上是并存的,超过一定的阶段它们开始分道扬镳。你不可能同时拥有它们。如果你将系统配置为高延迟,你的一些工作将被打断,这将降低系统的吞吐量。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。