问题标签 [fragmentation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 如何防止 HttpWebRequest 的数据包碎片
我在对嵌入式设备上的 HTTP 守护程序使用 HttpWebRequest 时遇到问题。问题似乎是在写入套接字流的 http 标头和 http 有效负载(POST)之间有足够的延迟,以至于套接字将套接字缓冲区中的内容释放到服务器。这导致 HTTP 请求被拆分为两个数据包(碎片)。
当然,这是完全有效的,但是如果数据包的拆分时间超过 1.8 毫秒,另一端的服务器将无法处理。所以我想知道是否有任何现实的方法来控制这个(在客户端)。
HttpWebRequest 上似乎没有任何属性可以对用于发送的套接字提供这种级别的控制,并且似乎无法访问套接字本身(即通过反射),因为它仅在发送期间创建,并且之后发布(作为出站 http 连接池的一部分)。BufferWriteStream 属性只是缓冲 webrequest 中的正文内容(因此它仍然可用于重定向等......),并且似乎不会影响整个请求写入套接字的方式。
那么该怎么办?
(我真的想避免从套接字重新编写 HTTP 客户端)
一种选择可能是编写 HttpWebRequest 发送到的某种代理(可能通过 ServicePoint),并在该实现中缓冲整个 TCP 请求。但这似乎是一项艰巨的工作。
当我运行 Fidder 时它也可以正常工作(出于同样的原因),但这在我们的生产环境中并不是一个真正的选择......
[ps:我知道这肯定是碎片数据包之间的间隔问题,因为我敲开了一个套接字级别的测试,在那里我使用 NoDelay 套接字显式控制了碎片]
windows-xp - 如何创建文件系统碎片?
文件碎片的风险因素主要包括完整的磁盘和重复的文件附加。文件碎片还有哪些其他风险因素?如何使用 C++/C#/VB/VB.NET 等通用语言制作程序来处理文件并制作新文件以增加文件碎片?
WinXP / NTFS 是目标
编辑:这样的事情会是一个好方法吗?硬盘可用空间 = FreeMB_atStart
- 会创建 10MB 的文件来填充 90% 的剩余硬盘空间
- 删除每 3 个创建的文件
- 制作大小为 FreeMB_atStart * .92 / 3 的文件
c# - 磁盘碎片整理如何工作?
我想尝试写一些东西来显示硬盘驱动器的碎片程度。也许甚至可以对其进行碎片整理。
但我意识到我并不完全理解这是如何工作的。
任何人都可以向我解释这一点,也许可以提供一些我可以从哪里开始的建议?
我主要使用 C# - 这是否是一种合适的语言来尝试将某些东西放在一起。
提前致谢
c - TCP/UDP 和以太网 MTU 分片
我已经在线阅读了各种网站和教程,但我仍然感到困惑。如果消息大于 IP MTU,则send()
返回发送的字节。消息的其余部分会发生什么?我是否要send()
再次打电话并尝试发送剩余的信息?还是 IP 层应该自动处理这些事情?
oracle - Oracle 表碎片
如何对表进行分段,使其分布在多个 oracle 9i 服务器上。
.net - 以编程方式确定文件的碎片状态
是否可以确定特定文件的碎片状态(即该文件占用的不同碎片的数量)?如果是这样,如何使用.net 来完成?
动机是这样的:我的应用程序将数据保存在 FileStream 中,按需更改其大小。这最终会导致文件碎片化。我想监视文件的碎片状态,并在此基础上决定是否应该复制文件并用新文件替换文件(从而在不更改 MFT 的情况下对其进行“碎片整理”)。
soap - TCP 数据包上“不分片”的好处?
我们的一位客户在将数据从我们的应用程序(在他们的 PC 上)提交到服务器(不同的地理位置)时遇到问题。当发送小于 1100 字节的数据包时,一切正常,但在此之上,我们看到 TCP 每隔几秒就重新传输一次数据包并且没有得到响应。我们用于测试的数据包大约 1400 字节(但小于 1472)。我可以向 www.google.com 发送一个 1472 字节的 ICMP ping 并得到响应(所以这不是他们的路由器/前几跳)。
我发现我们的应用程序为这些数据包设置了 DF 标志,并且我相信通往服务器的路由器的 MTU 小于/等于 1100 并丢弃了数据包。
这会影响 5000 中的 1 个客户端,但由于每个人的路线都会有所不同,因此这是意料之中的。
数据是一个 SOAP 信封,我们期望得到一个 SOAP 响应。我无法证明我们为什么要这样做,这样做的代码是由以前的开发人员编写的。
所以...在应用程序数据的 TCP 数据包上设置 DF 标志有什么好处或理由吗?
我可以想到网络诊断应用程序需要它的原因,但在我们的情况下不需要(我们希望数据到达端点,无论是否碎片化)。我们的一位系统管理员说,这可能与我们使用 SSL 有关系,但据我所知,SSL 就像一个流,无论碎片如何,只要流在最后重建,就没有问题。
如果没有充分的理由,我将改变我们应用程序的行为。
提前致谢。
mysql - MySQL 优化 20 gig 表
我有一个 20 gig 表,每天有大量的插入和更新。该表也经常被搜索。我想知道 MySQL 索引是否会变得支离破碎,可能需要重建或类似的东西。
我发现很难弄清楚检查表、维修表或类似的东西中的哪一个?
任何指导表示赞赏,我是 db newb。
performance - 如何查看特定文件的碎片?
是否有工具可以显示磁盘上的特定文件,它的碎片程度如何?(如果我要以线性方式读取该文件,物理磁盘需要进行多少次查找)
android - Android 应用:对于最广泛的吸引力,推荐的 targetSdk 是什么?
我有一个只需要互联网访问的 Android 应用程序,并希望以 API 级别 3 (1.5) 为目标,以覆盖最广泛的手机群。但是,目标 API 级别 3 似乎隐含地需要用户可见的两个额外权限:修改 sd 卡和读取手机状态。
所以难题是,我是针对 API 级别 4 并拒绝运行 1.5 的用户,还是针对 API 级别 3 并拒绝那些对我的应用程序请求这么多不需要的权限感到不安的用户?
在这里做什么最聪明?真的有很多用户仍然被限制在 API 级别 3 中吗?
我感谢提供的任何智慧!谢谢!