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

增加内存流容量

巫马令
2023-03-14

我试图从SSRS服务器读取报告,问题是我的内存流不能超过65536字节。

到目前为止,我已经尝试过使用内存流,但尚未成功设置其容量,然后再阅读报告本身

            GetItemDefinitionResponse reportDefinition = channel.GetItemDefinition(DefinitionRequest);
            MemoryStream memstream = new MemoryStream(reportDefinition.Definition);
            rdlFile.Load(memstream);

上面的MemoryStream必须在我读取文件之前增加它的容量。

我试过在我的应用程序中玩。配置,但我不知道从哪里开始设置内存流的字节容量

共有1个答案

郜谦
2023-03-14

你可以

byte[] bytes = reportDefinition.Definition; 
var ms = new MemoryStream(); 
ms.Write(bytes, 0, bytes.Length);

通过这种方式,MemoryStream是可调整大小的。

可能您应该在写入以下内容后将位置更改为0:

ms.Position = 0;

但这取决于您是想在内存流中附加新数据(不要设置位置),还是只想重新读取数据(设置位置)<代码>新内存流(reportDefinition.Definition)有一个隐式的位置=0。

作为旁注,接受byte[]MemoryStream构造函数的重载是不可调整大小的,而没有byte[]参数的两个重载(MemoryStream()MemoryStream(int))是可调整大小的。

 类似资料:
  • 我刚刚意识到,当只有一个消费群体存在时,XACK不会自动删除消息。 我以为当所有的消费者组都收到相同的消息时,消息会被Redis-server删除,但似乎不是这样。 因此,Redis流内存无限增加,因为没有消息会被删除。 也许防止这种情况的唯一方法是手动发送XDEL消息?但我怎么知道所有的消费者群体都接受了这个信息呢? 需要一些帮助,谢谢!

  • 问题内容: 我在Google和此站点中搜索了我的问题,但我仍然不明白该解决方案。 我有一段程序里面有一些数据。程序在大型阵列上崩溃,并显示虚拟内存不足的错误,因此我开始考虑文件。 在此之前: 之后: 我在Ubuntu上进行了测试,并通过系统监视器看到了这种内存增加。但是我很困惑,(和)参数没有变化。 问题是-实际内存使用量的指标是什么? 这是否表示真实指标是?(并且仅分配但仍未使用的内存) 问题答

  • 问题内容: 我的开发机器上有8GB RAM,并试图运行Apache Tomcat(7.0.29)同时托管Artifactory(2.6.3)和Jenkins(1.479)。我试图找到Jenkins的内存需求,但看起来他们的Wiki断了。 在中,我添加了以下命令: 这应该将Tomcat的JVM的大小保持在(基本上)1到3 GB之间,为我留出足够的空间来容纳其他内容, 并 为Tomcat留出足够的内存

  • 我想改变(增加)Java内存限制(Windows PC上的JRE)。我到处都遵循以下命令: -xms设置初始Java堆大小 -Xmx设置最大Java堆大小 例如-Xmx1024m。 但我的问题是在哪里!我必须输入这个命令吗?抱歉这个初学者的问题。通常我对java没有任何接触。

  • 我使用“mvn exec:java”运行我的程序: 我没有找到更改JVM的最大内存分配。 我试过-Dexec.commandlineArgs="..."但那不起作用...

  • 我正在使用Spark1.4进行研究,并与内存设置进行斗争。我的机器有16GB内存,所以没有问题,因为我的文件只有300MB。但是,当我试图使用函数将Spark RDD转换为panda dataframe时,我收到以下错误: 我试图修复这个问题,更改了spark-config文件,但仍然得到相同的错误。我听说这是Spark1.4的一个问题,不知道您是否知道如何解决这个问题。任何帮助都是非常感谢的。