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

c# – 为什么非托管内存占控制台应用程序使用的内存的60%以上?

我正在使用ANTS Memory Profiler 7.0分析内存使用情况,并注意到控制台应用程序的非托管内存使用量大约为193MB(约62%),只比1000万左右的记录填充一些DTO. 非托管内存的帮助文本说:The memory is assigned to the parts of the application that aren’t running as pure .NET code. This includes the common language runtime itself, graphics buffers and any unmanaged data accessed through P/Invoke or COM+为什么这个数字...

c# – 检索可用的连续内存【代码】

我必须生成大胖的大图像,比如150003000.我使用GDI,类Bitmap生成此图像. 当然,有时候生成将失败,因为没有更多的内存来实例化Bitmap.我的目标是告知用户他们允许生成的图像的最大大小. 该消息应如下所示:You tried to generate an image of size 150003000, but there is not enough memory.The maximum size available is 100003000, or 150001000.创建消息的想法是这样的:public bool CanCreateBitmap(Size size, out string mes...

c#如何避免内存分配瓶颈以提高多线程性能

我使用C#作为研究工具,经常需要运行CPU密集型任务,例如优化.从理论上讲,我应该能够通过多线程化代码来提高性能,但实际上当我使用与工作站上可用内核数量相同的线程数时,我通常会发现CPU仍然只运行在25 %-50%的最大值中断代码以查看所有线程正在做什么强烈建议内存分配是瓶颈,因为大多数线程将等待新语句执行. 一种解决方案是尝试重新设计我的所有代码,以提高内存效率,但这将是一项庞大而耗时的任务.但是,由于我的工作站上有大量内...

c# – 按内存列表中的另一个内存列表排序【代码】

可以通过另一个列表对内存列表进行排序(第二个列表将是参考数据源或类似的东西)?public class DataItem {public string Name { get; set; }public string Path { get; set; } }// a list of Data Items, randomly sorted List<DataItem> dataItems = GetDataItems();// the sort order data source with the paths in the correct order IEnumerable<string> sortOrder = new List<string> {"A","A.A1","A.A2","A.B1" };// is the...

c# – ITextSharp合并多个pdf的内存不足异常【代码】

我必须将多个1页pdf合并为一个pdf.我正在使用iTextSHarp 5.5.5.0来实现这一目标,但是当我合并超过900-1000 pdf时,我得到一个内存不足异常.我注意到,即使我释放我的阅读器并关闭它,内存永远不会被正确清理(进程使用的内存量永远不会减少)所以我想知道我可能做错了什么.这是我的代码:using (MemoryStream msOutput = new MemoryStream()){Document doc = new Document();PdfSmartCopy pCopy = new PdfSmartCopy(doc, msOutput);doc....

C#中字典的内存使用情况【代码】

我有一些代码,我添加了一个嵌套字典,格式如下Dictionary<string, Dictionary<string, Dictionary<string, float>>>这样做后,我注意到我的应用程序的内存使用情况严重上升.这些词典以经常重复的字符串为基础,并且有许多这些字典,大约有数十万字典. 为了解决这个问题,我假设重复的字符串占用了大量的内存.我的解决方案是散列字符串并使用整数(我会保留彩虹表的一个副本,以便我可以在必要时反转哈希)Dictionary<int, Dictionary<int, ...

c# – 反复初始化Clearscript V8引擎时出现内存不足(GC问题?)【代码】

我创建了一个基本的默认ASP.NET 5项目.我有一个创建的控制器var engine = new V8ScriptEngine();并返回一些模拟json.当我刷新页面一定次数时,我得到了Fatal error in heap setup Allocation failed – process out of memory并跟踪堆栈跟踪Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Reflection.TargetInvocationException: Exce...

c# – 图像处理循环中的内存异常(需要比GC.collect更好的解决方案)【代码】

我正在制作一个小型应用程序,以窗体形式显示实时网络摄像头,并且还存储水印图像以指定间隔驱动(创建间隔拍摄视频是最终目标). 我正在使用AForge库进行图像和视频处理. 我有问题,似乎有内存泄漏,即使我试图确保在图像处理发生的每个位置使用“使用”语句. 下面是进行图像处理的代码(The NewFrame事件)private void Video_NewFrame(object sender, NewFrameEventArgs eventArgs){try{if (ImageProcessing) // If the previous frame ...

c# – 如何在IIS上运行的dotnet Core应用程序中获得可见/调试高内存使用率

我们有一个应用程序,我们最近移植到使用Aspnet boilerplate框架,并有许多关于内存使用的问题.我们的初始症状是强烈的内存使用,在高使用时间没有减轻.内存使用量在夜间和周末增加,但不会达到高峰期的速度.当我输入这个时,我正在监视并看到当正常使用量最多为500-550mb时,应用程序在系统上使用超过5Gb的内存.我们使用几个内存分析工具来分析应用程序,发现框架库和我们引用的Kestrel版本中存在一些潜在的泄漏,但即使在修复问题之后,占...

c# – 如何读取内存中加载的模块的PE头?

我正在尝试.NET中的内存访问.目前,我有一个托管程序,它启动一个非托管进程并检索其中一个加载模块(DLL)的BaseAddress.我想要做的是以某种方式读取加载模块的PE头,以便我以后可以检索其导出的地址. 不幸的是,我找不到任何关于此的好信息.有任何想法吗?解决方法:This是PE文件格式的良好起点. 您可以从基地址P / Invoke ReadProcessMemory将标题复制到您的过程中.您需要将读取的内存解析为各种PE头.第一个标题是IMAGE_DOS_HEADER,它将...

c# – 如何读取DLL插件中的MEF元数据而不将整个DLL复制到内存中?【代码】

背景: 我有兴趣使用MEF在使用C#和.NET 4.0的WinForm应用程序中提供插件架构,但我不清楚一些事情. 第一:我还没有在C#中构建DLL的工作,我对DLL Assemblies的概念以及DLL如何正常加载到内存中有点模糊(意思是,根据需要一次性或分段) 意图: 该程序将是一个机器硬件控制框架,将由一个主要的WinForm GUI组成,这是一个具有基本工具栏,菜单等的通用环境 – 但没有批量GUI内容. (想想:MDI家长,但实际上并非如此). 插件提供特定机器的所有...

c# – .Net图像调整内存泄漏大小【代码】

我正在尝试在批处理作业中调整图像大小.当我使用.Net提供的类时,内存未正确释放,因此抛出OutOfMemoryException.我想我正确地使用了陈述.代码如下:private static byte[] Resize(byte[] imageBytes, int width, int height){using (var img = Image.FromStream(new MemoryStream(imageBytes))){using (var outStream = new MemoryStream()){double y = img.Height;double x = img.Width;double factor = 1;if (width > 0)factor = ...

c# – 什么时候.NET中的静态类加载到内存中?【代码】

正如标题所示,我感兴趣的是静态类在.NET中加载到内存中,尤其是C#.我假设它类似于Java中的this question和关于静态方法的this question,因为它是在第一次使用时加载的.另外,一旦它在内存中,它会一直存在,直到应用程序终止,或者当垃圾收集器出现清理使用它的类时,它会被清理干净吗? 我意识到静态类使用的少量内存在具有8 GB RAM标准的计算机世界中并不是非常重要,但了解内部结构总是很有趣. 编辑: 答案让我想要在这个问题上添加更多...

c# – 使用两个列表在.NET上重复内存【代码】

我正在研究.NET上的一个小应用程序,我需要用2个不同的列表指向相同的数据,我想知道是否内存是重复的,例如public class Person {public string name;public int age;....public Person(name, age){this.name = name;this.age = age;} }SortedList<string> names; SortedList<int> ages;Person person1 = new Person("juan",23);names.add("juan",person1); ages.add(23,person1);我猜.NET作为Java不会复制对象Person,所以它会被保留...

cassandra c#驱动程序内存泄漏【代码】

使用cassandra .net驱动程序,我们面临以下问题:使用参数化INSERT插入大量行时,应用程序内存使用量不断增长:class Program {static Cluster cluster = Cluster.Builder().AddContactPoints(ConfigurationManager.AppSettings["address"]).Build();static Session session = cluster.Connect(ConfigurationManager.AppSettings["keyspace"]);static int counter = 0;static void Main(string[] args){for (int i = 0; i < 50; i++)...