当前位置: 首页 > 知识库问答 >
问题:

净WRITE_SPIN_COUNT的用法

戈华茂
2023-03-14

我想了解Netty频道选项“WRITE_SPIN_COUNT”的用法。将此值设置为高于或低于默认值(16)的效果是什么。这个应该设置吗。?这是我从Netty文档中获得的信息,但不清楚为什么以及何时应该设置此值:http://netty.io/4.0/api/io/netty/channel/DefaultChannelConfig.html#getWriteSpinCount()根据文档说明:返回WritableByteChannel之前写入操作的最大循环计数。write(ByteBuffer)返回非零值。它类似于并发编程中使用的旋转锁。根据JVM运行的平台,它可以提高内存利用率和写吞吐量。默认值为16。

共有1个答案

师野
2023-03-14

写自旋计数用于控制每次Netty写操作调用底层socket.write(…)的次数。请记住,从Netty的缓冲区写入底层套接字可能不会一次尝试传输所有数据。在尝试完全写入单个缓冲区可以花费多少时间和如果该缓冲区没有完全写入,则I/O线程必须注册写入事件并在底层套接字可写时被唤醒之间存在平衡。稍后的操作可能很昂贵,因为通常套接字是可写的,并且I/O线程一旦尝试等待选择机制就会被唤醒。我描述的内容可以在NioSocketChannel中看到。

我对这些类型的配置选项的建议是,如果您观察到性能问题,请为您的用例进行基准测试,或者保留默认值。基准测试可能会揭示您的问题出在其他地方,或者至少会帮助您了解更改此值对您的特定用例的影响。

 类似资料:
  • TLDR:由于UserNotFound错误(未找到的用户来自旧安装),我无法使用空数据目录启动Mongo的干净安装(从ZIP)。 更详细地说:我最初的Mongo数据库运行良好。出于测试目的,我移动了当前的数据目录,并创建了一个新目录。所以我停止了运行Windows服务 创建一个新的数据目录并尝试在noauth模式下启动一个新的MongoDB 麻烦就从这里开始了:MongoDB试图从我的旧数据库中连

  • 问题内容: Wireshark确认,当尝试使用netty进行写入时,写入的数据永远不会在远端结束。 我努力了: 当我包装它时,没有异常被捕获 我该怎么做才能调试此问题? 问题答案: Netty是异步的,这意味着在写入失败时它不会引发异常。它不会引发异常,而是返回一个将在请求完成后更新的。确保在第一个调试步骤中记录由此产生的所有异常: 或更简单地说: 获得异常的根本原因后,可能会出现多个问题: 注意

  • 我能够从赫尔辛基MOOC课程中弄清楚这个项目,但我认为有一种更干净、更容易阅读的方式来写它。目标是打印出:

  • 我试着用纯的。NET(无外部类、控件和助手)创建SAML消息。我在互联网上找到了一些代码;这就是我所拥有的: 下面是我用来获取XML的代码: 这似乎是行得通的。然而,消息是产生的是SAML版本1.0-我需要使用2.0。 我知道我可以做一些草率的工作,在这里和那里替换一些值,这个系统会工作得很好。在信息上几乎没有什么不同,版本是最重要的。我很难找到有关SAML2.0的信息。网我知道SAML2.0是在

  • 问题内容: 这是我的.htaac​​cess代码。 我需要网站的干净URL。我参考了许多教程和论坛,并创建了上面的代码。但是无法正常工作。几乎我正在与代码作斗争。我不太清楚干净的URL概念。我要在我的php页面上编写任何编码吗? 我在index.php文件中有此链接。 我想要同时点击链接泰坦尼克号。 我也想通过$ _ [request]获得值。 我到底要做什么。请不要重复提出这个问题,我已经搜索了

  • 我正在尝试在我的ASP中启用CORS。NET核心API,并允许从我的客户端应用程序传递cookie(6)。但是,每当我试图通过角度应用程序命中endpoint时,我都会收到以下错误: 对预试请求的响应不通过权限改造检查:当请求的凭据模式为包含时,响应中的访问控制允许起源标头的值不得为通配符* 在我的创业公司里。cs文件,我已在ConfigureServices下启用CORS,如: 并在“配置”下: