itext7 - 在 Blazor WASM 中使用大表似乎不起作用
问题描述
在 Blazor WASM 应用程序 (.NET 5) 中,我有一个 Razor 组件,我在其中创建了一个大约 4k 行的表,并按照此处找到的 iText 网站的教程进行操作。
var dataTable = new Table(5, true)
.UseAllAvailableWidth()
.SetBorder(Border.NO_BORDER);
dataTable.AddColumnHeader("Header 1");
dataTable.AddColumnHeader("Header 2");
dataTable.AddColumnHeader("Header 3");
dataTable.AddColumnHeader("Header 4");
dataTable.AddColumnHeader("Header 5");
document.Add(dataTable);
for (int i = 0; i < FilteredItems.Count; i++)
{
var item = FilteredItems.ElementAt(i);
dataTable.AddColumnData(item.Item1);
dataTable.AddColumnData(item.Item2);
dataTable.AddColumnData(item.Item3);
dataTable.AddColumnData(item.Item4);
dataTable.AddColumnData(item.Item5);
if (i % 50 == 0)
{
dataTable.Flush();
}
}
dataTable.Complete();
document.Close();
对于每次刷新的情况,我都会收到以下错误Error: Garbage collector could not allocate 16384u bytes of memory for major heap section.
我怀疑这可能是 Blazor 的限制。还有其他人遇到这个问题吗?
解决方案
- 大量 RAM 的低延迟
- 小 RAM 无低延迟
所以:
关闭低延迟。
https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/latency?redirectedfrom=MSDN
在app.config
<configuration>
<runtime>
<gcServer enabled="false" />
</runtime>
</configuration>
推荐阅读
- oracle - 使用 Nifi 将来自不同源的参数传递到插入语句中
- c++ - 如何在链表的末尾添加元素以及在位置上为它们添加不同的代码?
- sql - 如何从 DB2 中另一个表中存在行的一个表中删除?
- javascript - 在没有 vue-router 的情况下使用 Vuejs 监听 onpopstate
- python - Pandas 映射语法
- performance - Flash of Unstyled Text - FOUT 会影响网站性能吗?
- react-native - 调试本机反应时出错?
- git - 有没有办法合并分支并将其修改为最后一次提交,这样它就不会创建额外的提交?
- javascript - 如何在 Jest 的模拟模块中更改函数的模拟实现
- python - 快速需要帮助,横向打印