【将cmd中的数据写入内存而不是文件,用C#捕获】教程文章相关的互联网学习教程文章

小方法的函数调用是否会占用内存……在C#中

我有一个问题.与编写大型方法(包括大型业务逻辑)不同,我更喜欢将此方法划分为多个小方法并以一种方法调用它们,因为对我而言,它看起来如此整洁且易于维护.但是我的团队负责人说:“不要编写小型方法,并且不要一并调用它们,因为调用小型方法会消耗更多的内存.”那是对的吗 ? 请建议在这种情况下我该怎么办?再次感谢您的宝贵时间解决方法:这里有许多因素在起作用.给出任何严格的结论都需要更多项目环境. 总体而言,C#,VB和托管语言通...

c#-数据集中的大型XML文件(内存不足)【代码】

我目前正在尝试将稍大的xml文件加载到数据集中. xml文件约为700 MB,每次我尝试读取xml都需要大量时间,并且过一会儿会抛出“内存不足”异常.DataSet ds = new DataSet(); ds.ReadXml(pathtofile);主要问题是,对于我而言,必须使用这些数据集(我将其用于将xml文件中的数据导入sybase数据库(foreach表,foreach行,foreach列)),并且我没有任何方案文件. 我已经在Google上搜索了一段时间,但我只找到了对我不可用的解决方案. 附加信息:我使...

c# – 数组内存分配 – 分页

不确定Java,C#和C的答案是否相同,所以我对所有答案进行了分类.所有语言的答案都会很好. 我一直在思考的所有日子,如果我分配数组,所有单元格将在一个连续的空间中.因此,如果系统中没有足够的内存,则会出现内存不足异常. 没事,我说的是什么?或者是否有可能,分配的数组将被分页?解决方法:C阵列是连续的,这意味着存储器具有连续的地址,即它在虚拟地址空间中是连续的.它在物理地址空间中不需要是连续的,因为现代处理器(或它们的存储器...

从托管C#释放非托管内存及其指针【代码】

简短的问题是:如何释放从本机DLL返回的内存作为托管代码中的ItrPtr? 细节 :假设我们有简单的函数将两个参数作为OUTPUT,第一个是参考指针到字节数组,第二个是参考Int.该函数将根据某些规则分配字节数,并返回内存指针和字节大小以及返回值(1表示成功,0表示失败). 下面的代码工作正常,我可以正确获取字节数组和字节数和返回值,但是当我尝试使用指针(IntPtr)释放内存时,我得到异常:Windows has triggered a breakpoint in TestCppD...

C#获取CPU和内存使用率【代码】【图】

原文:C#获取CPU和内存使用率 获取内存使用率 方式1: using System; using System.Runtime.InteropServices;namespace ConsoleApp1 {public class Class1{static void Main(string[] args){Console.WriteLine("总内存:" + FormatSize(GetTotalPhys()));Console.WriteLine("已使用:" + FormatSize(GetUsedPhys()));Console.WriteLine("可使用:" + FormatSize(GetAvailPhys()));Console.ReadKey();}#region 获得内存信息API[Dll...

C#获取CPU和内存使用率【代码】【图】

获取内存使用率 方式1: using System; using System.Runtime.InteropServices;namespace ConsoleApp1 {public class Class1{static void Main(string[] args){Console.WriteLine("总内存:" + FormatSize(GetTotalPhys()));Console.WriteLine("已使用:" + FormatSize(GetUsedPhys()));Console.WriteLine("可使用:" + FormatSize(GetAvailPhys()));Console.ReadKey();}#region 获得内存信息API[DllImport("kernel32.dll")][retur...

c# – 什么时候(不)两个具有相同内容的字符串共享相同的内存?【代码】

来自问题will two strings with same content be stored in the same memory location? 拥有Java代码String s1="Java";将此字符串分配到相同的内存位置(或多重): >如果多次并行执行同一程序(并发)? 可能的答案: 我目前是C#开发人员(虽然在上一个千年中用Java编程). 我问过这个问题,因为我认为.NET CLR和Java(JVM)之间是一样的,我希望得到.NET应用程序的答案(但不知何故,经常遇到的“应用程序”池术语存在疑问). 所以,它似乎是(抱...

如何在c#的内存中直接创建结构?【代码】

我有C#的问题.我试图调用以下C方法.void SetPropertyInfoList(int count, ref AfwPropertyInfo propertyInfo);我想用x AfwPropertInfo结构创建一个内存块.我不知道怎么在内存中直接跟在一起. 有谁能够帮我?解决方法:你实际拥有的是一个数组.我希望C代码看起来像这样:void SetPropertyInfoList(int count, AfwPropertyInfo* propertyInfo);现在,AfwPropertyInfo *没有完全指定参数是什么.它可以是指向单个AfwPropertyInfo结构的指...

C# 字符串string和内存流MemoryStream及比特数组byte[]之间相互转换【代码】

定义string变量为str,内存流变量为ms,比特数组为bt 1.字符串转比特数组 复制代码 代码如下: (1)byte[] bt=System.Text.Encoding.Default.GetBytes("字符串"); (2)byte[] bt=Convert.FromBase64String("字符串"); 2.字符串转流 复制代码 代码如下: (1)MemoryStream ms=new MemoryStream(System.Text.Encoding.Default.GetBytes("字符串")); (2)MemoryStream ms=new MemoryStream(Convert.FromBase64String("字符串")); 3.流...

C到C#(Mono)内存映射文件/ linux中的共享内存【代码】

我正在研究一种每秒需要大约20兆的数据的嵌入式系统.我的低级采集,控制和处理层将其中的大部分转换为少数几个重要值,但它也可以帮助最终用户查看未处理数据的窗口. 我正在使用mod-mono在C#中使用ASP.NET前端.我希望ASP.NET页面的服务器端部分能够轻松地请求最后半秒左右的数据. C代码具有实时约束,因此我不能使用消息传递来响应 – 它可能很容易被太多客户端或快速刷新的人陷入困境.我希望它能够将数据放置在任何数量的C#读者可以根...

c# – 垃圾收集和使用 – 为什么在使用{}`块后没有释放内存?【代码】

我最近一直在重构一些旧的数据库访问代码.我有一个包含数百种方法的库,看起来像这样public int getFoo(int id) {using(SqlConnection connection = ConnectionManager.GetConnection()){string sql = "SELECT TOP(1) foo FROM bar WHERE id=@id";SqlCommand command = new SqlCommand(sql, connection);command.Parameters.AddWithValue("@id", id);return (int)command.ExecuteScalar();} }我认为将SqlCommands包装到using {}块(就...

c# – 一个大的System.IO.MemoryStream会导致我的应用程序的内存使用量急剧增加吗?

我正在构建一个允许用户从URL下载文件的库.我正在考虑的一个选项是让用户为文件指定预期的MD5校验和;库的GetFile(string url)函数确保下载的流的校验和与用户指定的校验和匹配. 知道HttpWebResponse.GetResponseStream()返回的NetworkStream是不可寻的,我找到了一种复制流的方法,这要归功于这个问题的答案:How can I read an Http response stream twice in C#?.在我走得更远之前,我想弄清楚内存含义是什么这种重复将是;不幸的是,...

为什么我的C#-console应用程序因复制文件时“内存不足”异常而崩溃?【代码】

我做了一个非常简单的程序,可以在外部HDD上找到图片,并将它们放入文件夹中.这听起来很简单,但出于某种原因,我在这样做的时候得到了“Out of Memory”异常. 我已经在64位Win10上测试了4 GB的内存,64位的Win10和32 GB的内存.然而,我仍然在两个系统上都获得了“Out of Memory”特例. 我的平台目标是x64. 这是发生错误的代码:string[] filePaths = Directory.GetFiles(Stien, "*.*", SearchOption.AllDirectories);foreach (string fi...

c# – 变量的内存地址

是否可以在C#中获取变量的内存地址. 我想要做的很简单.我想声明Double类型的变量,Float,Decimal并为每个变量赋值1.1.然后我想去看看这些值是如何在内存中表示的.我需要记忆变量的地址,以便查看它如何存储在内存中.一旦我有了内存地址我打算在代码中加一个断点并使用Debug – > Windows – >记忆visual studio中的选项,以查看数字如何存储在内存中. 干杯,解决方法:是的,可以在C#中获取存储的原始指针.我建议您阅读C#规范的第18章,...

c# – 使用PInvoke中的结构后,是否需要释放内存?【代码】

我需要做这样的事情:TEXTMETRIC tm; bool isTrueType = false; if (NativeMethods.GetTextMetrics(hDC, out tm)) {isTrueType = ((PitchAndFamily)tm.tmPitchAndFamily & PitchAndFamily.TMPF_TRUETYPE) == PitchAndFamily.TMPF_TRUETYPE;IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf<TEXTMETRIC>(tm));Marshal.StructureToPtr<TEXTMETRIC>(tm, ptr, true);Marshal.FreeHGlobal(ptr); }或者一旦功能退出,是否会自动清理分配...