所以我有这个 WCF 服务,它为我提供了 PDF 处理功能。现在它正在接受并返回纯字节数组(byte[]
),但这意味着它总是将所有内容读取到内存中,即使在处理流时,它也必须将它们 ToArray() 到字节数组。问题是,这会导致内存不足和堆碎片。
我有两种选择来优化它,这样它就不会使用太多内存:
- 使用流。虽然很诱人,但我可能不得不将它保存到磁盘上以供 PDF 工具包处理。考虑到绑定数量有限以及双工流和参数数量的限制,这也是一个非常挑剔的策略。
- 来回传递 UNC 文件路径。看起来很有希望,但会使事情复杂化,因为有人需要在使用后清理文件。
在优化资源使用(内存、网络、文件系统)方面,哪种替代方案会取得最佳效果?