gpt4 book ai didi

networking - 网络中的性能因素

转载 作者:行者123 更新时间:2023-12-03 16:26:27 24 4
gpt4 key购买 nike

有时我只是在兜圈子,想知道是否添加一个线程队列,单线程查询和更新数据库服务器,以工作线程处理用户请求为代价是否有效地使用资源,以及它如何影响应用程序在 number of replies/sec 方面的整体性能?

然而,由于我只是一个没有真正商业项目的业余爱好者,我通常会因为想太多而最终放弃。我进行了研究,但没有找到相关答案。

那么,在托管和非托管环境中编写高性能 I/O(特别是网络)应用程序时,还应考虑哪些其他因素?

最佳答案

操作系统概念是适合您研究的领域之一。许多计算机科学学位都开设了这方面的类(class)。

听起来您的机器上有一个假设的应用程序正在请求数据库,您有兴趣对这个假设的应用程序进行线程处理是否会提高其性能。

作为一名性能测试员,我可以告诉您系统性能完全取决于权衡和优先级。即,您是希望 UI super 响应,还是希望使用绝对最少的系统资源?

在这种情况下你很幸运,你想要平衡的资源没有相互争用。事物的数据库端就是我们所说的 I/O,事物的线程端是 CPU。应用程序往往是 I/O 绑定(bind)或 CPU 绑定(bind),少数两者都是。在 I/O 绑定(bind)应用程序中,切换到更快的 CPU 不会加快速度,反之亦然。

如果您添加额外的线程,当且仅当您的网络有时间进行额外的网络 IO 时,这才会有所帮助。添加额外的线程不会以无法处理的方式增加 CPU 上的负载,因为将向数据库发出请求并且线程会阻塞。一旦请求返回到您的机器,将抛出一个中断,您的线程将从等待队列中拉出。

真正的问题是:您想对数据库多好?

关于networking - 网络中的性能因素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4720785/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com