c# 性能有关的问题!!!!

问题如图,请说出这段代码哪些地方需要优化?怎么优化?并详细说明一下优化理由
麻烦各位大神了,如果解答比较有用还有红包答谢!!图片说明

c#

3个回答

修改后的代码如下:

            List<string> ls = new List<string>();
            ls.Add("A");
            ls.Add("B");
            ls.Add("C");
                        ......

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < ls.Count; i++)
            {
                sb.Append(ls[i]).Append(",");
            }
            String result = sb.ToString();
                        trace(result);

当用"+="方式进行大量字符串的拼接操作时(特别是在循环体中),会生成过多不必要的临时字符串
从而影响性能。

本来我想展开详细写写,写了半个小时,发现很难讲完整,放弃了:)
"+="方式和StringBuilder方式谁优劣,影响的因素很多,并不能轻易得出结论。

下面是我收集的几篇和这问题有关的文章:

http://www.cnblogs.com/allenlooplee/archive/2005/06/08/169924.html

http://blog.zhaojie.me/2009/11/string-concat-perf-1-benchmark.html (这个是系列,共3篇,非常详细)

如果是实际编程,当字符串数目不是非常多时,
不用纠结采用哪种方式,差别微乎其微。

如果是要写论文或者作业,以上两个链接是非常好的参考。

用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢。

这个问题估计是个面试问题,考官考的是字符串拼接的性能问题,楼上说的正确。
当然,如果按照楼上的方式回答,考官会认为你基本功是有的,但是项目经验是缺乏的。
工程师的做法很简单,一行代码
string result = String.Join(",", ls);

qq_37246087
我不姓郭 学到了、、感谢 、我不是楼主没法采纳、、哈哈、
接近 3 年之前 回复

在csdn回答问题真的不容易,付出的是热情和爱心,能得到一个谢谢都不错了。经常遇到胡乱采纳的,题目都写不全的,还有一言不合就开骂,除了见到这种绕着走,也没办法。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
一个关于c# 性能的问题!!!!
请说出这段代码哪些地方需要优化?怎么优化?并详细说明一下优化理由 麻烦各位大神了,如果解答比较有用还有红包答谢!!
c#中的委托相关的问题
this.Invoke(new Action(delegate(){ }));因为执行次数过多导致程序性能变差,反应迟缓,能否有什么方法能先设置好这个方法所需执行的代码,需要执行该代码的时候传入具体的参数就行。
关于CLR via C#中属性问题
如何理解CLR via C#中关于属性的说法:“属性唯一的好处就是提供了简化的语法,和调用普通方法 相比,属性不仅不会提升代码的性能,还会妨碍对代码的理解”。
C#订阅OpcServer 事件,OpcServerTag数据变化触发事件的原理是什么
做了一个C#订阅OpcServer事件的程序,由于数据变化比较频繁,触发事件频率较高; 为了提高程序的性能,我想通过多线程创建多个实例,每个实例订阅对应地址变化的事件, 但不清除OPC触发事件以及C#程序响应事件的工作原理,求懂这方面知识的前辈给解释一下,并提供一些好的建议,
关于C#高性能Socket服务器SocketAsyncEventArgs的实现的一些疑问
// This class creates a single large buffer which can be divided up // and assigned to SocketAsyncEventArgs objects for use with each // socket I/O operation. // This enables bufffers to be easily reused and guards against // fragmenting heap memory. // // The operations exposed on the BufferManager class are not thread safe. class BufferManager { int m_numBytes; // the total number of bytes controlled by the buffer pool byte[] m_buffer; // the underlying byte array maintained by the Buffer Manager Stack<int> m_freeIndexPool; // int m_currentIndex; int m_bufferSize; public BufferManager(int totalBytes, int bufferSize) { m_numBytes = totalBytes; m_currentIndex = 0; m_bufferSize = bufferSize; m_freeIndexPool = new Stack<int>(); } // Allocates buffer space used by the buffer pool public void InitBuffer() { // create one big large buffer and divide that // out to each SocketAsyncEventArg object m_buffer = new byte[m_numBytes]; } // Assigns a buffer from the buffer pool to the // specified SocketAsyncEventArgs object // // <returns>true if the buffer was successfully set, else false</returns> public bool SetBuffer(SocketAsyncEventArgs args) { if (m_freeIndexPool.Count > 0) { args.SetBuffer(m_buffer, m_freeIndexPool.Pop(), m_bufferSize); } else { if ((m_numBytes - m_bufferSize) < m_currentIndex) { return false; } args.SetBuffer(m_buffer, m_currentIndex, m_bufferSize); m_currentIndex += m_bufferSize; } return true; } // Removes the buffer from a SocketAsyncEventArg object. // This frees the buffer back to the buffer pool public void FreeBuffer(SocketAsyncEventArgs args) { m_freeIndexPool.Push(args.Offset); args.SetBuffer(null, 0, 0); } } 上面是MSDN官网给出的案例,在BufferManager类中有一个变量是 m_freeIndexPool,我看了很久这一段代码始终搞不明白这个变量存储的int集合代表的是什么意义,并且为什么在SetBuffer(SocketAsyncEventArgs args)方法中,m_freeIndexPool.Count > 0 就可以把接收到的数据放入m_buffer中? MSDN官网:https://msdn.microsoft.com/zh-cn/library/bb517542.aspx
C#命名管道通信遇到的问题
最近在做一个项目,需要C#与C++通信,因此没有用WCF,公司决定用命名管道来解决 进程之间通信,我目前是C#与C#之间使用命名管道进行测试,使用命名管道进行数据传输 很简单,但真正用到项目中会有以下问题: 1. 如何传递操作,即我这次传输的数据是用来干什么的,要转换成什么数据类型? 2.我使用xml序列化引用类型进行传输,最后在接收端进行反序列化,这样频繁的调用资源 会不会影响程序性能(因为要序列化,就需要初始化各种reader,这些很占用资源)? 3,另外,我客户端发消息,服务端要调用接收代码才能得到消息,那么怎么让服务端能自动客户端在任意时间段发出的消息,如果起后台线程用while。。true监听,还是用定时器,隔多少毫秒扫描下,还是有更好的实现方法?
C# winform程序cpu占用率问题
一个雷达显控界面,项目调试运行cpu占用率很高,界面也很卡顿;但是用性能探测器运行, cpu占用率非常低,很流畅这是怎么回事? 我怀疑是不是线程有异常退出的时候,debug模式要打印错误信息,导致和卡顿? ![这个是debug的占用率](https://img-ask.csdn.net/upload/201804/28/1524930155_724903.png) 这个是debug模式运行的cpu占用率 ![图片说明](https://img-ask.csdn.net/upload/201804/28/1524930225_550268.png) 这个是性能探测器运行的cpu占用率,一行代码没改
C#PDA 与server端用什么进行通信比较好呀?
用C#写的一个PDA 现要与服务端进行数据交换 是用 webService 还是socket 进行监听好呢? 这两方面都没有经历 因为我一直是搞java的呀 服务端也是java写的, 各位给一个建议呀 个人觉得如果用 socket 的话就要有服务器写一个 serverSocket 的应用程序 一直跑着,瓶颈会不会是并发的问题呀 这样会影响服务器的性能哦? 这个系统是做物流系统,PDA是在码头进行收货 或 发货 与服务器进行交流数据? 所以是用 WebServer还是socket呀? 谢谢
C#中对枚举值进行显式转换是否有性能开销?
比如以下代码会进行装箱/拆箱的操作,从而产生性能上的开销。 int i = 5; object o = i; int j = (int)o; 那么我想问的是对枚举进行显式类型转换时,比如以下代码: directionByte = (byte)myDirection; 1、会发生装箱/拆箱的操作吗? 2、会产生性能的开销吗?
C#里面报错好像是版本不一致的原因
有关调用实时(JIT)调试而不是此对话框的详细信息, 请参见此消息的结尾。 ************** 异常文本 ************** System.IO.FileNotFoundException: 未能加载文件或程序集“Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个依赖项。系统找不到指定的文件。 文件名:“Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed” 在 PDFPrint.Class1.Gettrecord(String card_no, ArrayList& d1, ArrayList& d2) 在 PDFPrint.Form1.Form1_Load(Object sender, EventArgs e) 位置 D:\桌面文件\ZJHospital\PDFPrint\PDFPrint\Form1.cs:行号 27 在 System.Windows.Forms.Form.OnLoad(EventArgs e) 在 System.Windows.Forms.Form.OnCreateControl() 在 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) 在 System.Windows.Forms.Control.CreateControl() 在 System.Windows.Forms.Control.WmShowWindow(Message& m) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.ScrollableControl.WndProc(Message& m) 在 System.Windows.Forms.Form.WmShowWindow(Message& m) 在 System.Windows.Forms.Form.WndProc(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 警告: 程序集绑定日志记录被关闭。 要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)设置为 1。 注意: 会有一些与程序集绑定失败日志记录关联的性能损失。 要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。 ************** 已加载的程序集 ************** mscorlib 程序集版本:4.0.0.0 Win32 版本:4.6.1590.0 built by: NETFXREL2 基本代码:file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll ---------------------------------------- D_PrintSLG 程序集版本:1.0.0.0 Win32 版本:1.0.0.0 基本代码:file:///D:/%E6%A1%8C%E9%9D%A2%E6%96%87%E4%BB%B6/ZJHospital/PDFPrint/PDFPrint/obj/Release/D_PrintSLG.exe ---------------------------------------- System.Windows.Forms 程序集版本:4.0.0.0 Win32 版本:4.6.1590.0 built by: NETFXREL2 基本代码:file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System 程序集版本:4.0.0.0 Win32 版本:4.6.1590.0 built by: NETFXREL2 基本代码:file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Drawing 程序集版本:4.0.0.0 Win32 版本:4.6.1590.0 built by: NETFXREL2 基本代码:file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System.Configuration 程序集版本:4.0.0.0 Win32 版本:4.6.1590.0 built by: NETFXREL2 基本代码:file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll ---------------------------------------- System.Core 程序集版本:4.0.0.0 Win32 版本:4.6.1590.0 built by: NETFXREL2 基本代码:file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll ---------------------------------------- System.Windows.Forms.resources 程序集版本:4.0.0.0 Win32 版本:4.6.1055.0 built by: NETFXREL2 基本代码:file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/System.Windows.Forms.resources.dll ---------------------------------------- mscorlib.resources 程序集版本:4.0.0.0 Win32 版本:4.6.1055.0 built by: NETFXREL2 基本代码:file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/mscorlib.resources.dll ---------------------------------------- ************** JIT 调试 ************** 要启用实时(JIT)调试, 该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置 jitDebugging 值。 编译应用程序时还必须启用 调试。
C# DataTable格式转换的问题。
本人在做一个数据库 入库工具。可以把文本文件(.txt文件)中的数据,筛选(要区分分隔符和数据)。导入到指定的数据库表中。 思路是这样的: 1.在内存中创建一个表ResourceTable,并创建数据行,同时规定了这个表的每个列的数据类型(这个很重要)。 2.然后,逐行读取.txt文件。筛选。把数据和分隔符区分开来。并把要存入对应列的数据,转换成该列的数据类型(也就是说转换成ResourceTable中列的数据类型)。 3.把这个表导入到数据库。 但是小弟在第2步。碰到了问题。 问题是: 怎么根据ResourceTable列的数据类型,把要存入该列的数据进行类型转换。这个要怎么做? 描述一下问题吧。贴些代码。免得像我在QQ群里面一下,问了半天,没人懂。我问了什么? ![图片说明](https://img-ask.csdn.net/upload/201507/31/1438329909_836140.png) 这个是小弟的程序界面,大家可以大致的了解是个什么东西。 这个是读.txt文件的代码段, /// <summary> /// 读取文本文件,获取指定行数 /// </summary> /// <param name="saveTable">用于保存数据的table</param> /// <param name="TextFilePath">文本文件的路径</param> /// <param name="SplitString">分隔字符串</param> /// <param name="RowsCount">要读取的行数</param> /// <returns>如果获取到指定的行数,则正常,否则返回false代表失败。</returns> public static bool ReaderText(DataTable saveTable,string TextFilePath,string SplitString,UInt64 RowsCount ) { /*分隔措施*/ string[] data_mark = new string[] { "data" }; String[] sep_string = SplitString.Split(data_mark, StringSplitOptions.RemoveEmptyEntries); //通过切割字符串,把所有的非data标志的数据,判定为分隔符 string[] one_line; //文本文件中的一行 string badrow=null; //坏行,存在问题的行 /*构建文件流读取器*/ StreamReader sr; FileStream fs ; try { fs= File.OpenRead(TextFilePath); //创建文件流对象 sr = new StreamReader(fs, Encoding.Default); //创建一个指向文件的流读取器 } catch (Exception) { return false; //出现异常,读取失败 throw; } /*读取指定的行数并存入表中*/ for (UInt64 i = 0; i < RowsCount; i++) { try { DataRow one_row = saveTable.NewRow(); badrow=sr.ReadLine(); one_line = badrow.Split(sep_string, StringSplitOptions.RemoveEmptyEntries); //把取出来的分隔符数组作为切割标志,对从文本文件读到的数据进行分隔 for (int j = 0; j < one_line.Length; j++) //创建行,并往行里面添加数据 { one_row[j] = one_line[j]; // MessageBox.Show(saveTable.Columns[j].DataType.FullName); one_row[j]=(saveTable.Columns[j].DataType.FullName)one_line[j].ToString(); //【这里需要把存入saveTable的数据进行类型转换, //转换成和saveTable的对应列的数据类型一致。 //因为我的saveTable是把对应的列设置了数据类型的。 // (typeof(saveTable.Columns[j].DataType.FullName)); // System.Convert.(saveTable.Columns[j].DataType.FullName). } saveTable.Rows.Add(one_row); //把这一行添加到表里面 Form1.getInstance().progressBar1.PerformStep(); } catch (Exception) { BadRowsProcess(badrow, TextFilePath); //对坏行进行处理 // throw; } } sr.Dispose(); fs.Dispose(); return true; //正常读完了 } 这里是构建那个ResourceTable的代码段。 private void button_Insert_Click(object sender, EventArgs e) //开始入库按钮 { ResourceTable = new DataTable(); ResourceTable.Clear(); /*构建一下源表*/ DataTable TargetTableDes = ADO.selectOracle("select column_name,data_type,DATA_LENGTH from user_tab_columns where table_name='" + comboBox1.SelectedItem.ToString() + "'"); foreach (DataRow item in TargetTableDes.Rows) { ResourceTable.Columns.Add("【" + item[0].ToString() + "】" + item[1].ToString() + "(" + item[2].ToString() + ")"); //增加列名 ResourceTable.Columns["【" + item[0].ToString() + "】" + item[1].ToString() + "(" + item[2].ToString() + ")"].DataType = Type.GetType(item[1].ToString()); //给列限制数据类型。 } 小弟想问,怎么根据ResourceTable的列的数据类型,把存入这个列的数据,转换成和这个列的数据类型一致的。 而且这个问题还有以下几个特点: 1.ResourceTable的列不止一个,而且不同的列,数据类型可能不同。同时,用户,可能把同样的数据,导入不同的表,所以ResourceTable列的列数和列的数据类型。都是根据用户的选择,在程序运行期间确定的。 2.数据库的类型和C#的类型,不完全相同。比如数据库的date类型,等等。可能会碰到在数据库的类型中有,而在C#的类型中没有的情况。那这种情况要怎么处理? 3.这个数据类型转换语句,是要求性能的。因为可能要读上百万行的文本文件,而且对每一个列都要进行转换。最好是一行代码就可以完成这个功能。 好的啰嗦了点。求各位大神,指点指点,希望大家能看懂我的需求。也就是一个数据类型转换的问题。 第一次提问啊。表达不清楚之处。多多谅解,要是还是看不懂,就问我。我再补充。
是否提高了C#应用程序的健壮性同时就降低了CPU的性能?
我是基于DoNetFrameWork4.0写的一个WinForm程序,在测试程序健状性时我在程序多写了几个判断语句,一运行,我靠,CPU性能一下就升到了90%多,太吓人了,用的C#语言写的,我知道C#在DoNetFrameWork中要先编译成"微软公共语言",再编译成"二进制"给CPU执行,我只是在一个if()的里面加了一个或者:即if(||),原文如下:if (((biaozhunJiandanSqlText1021 == stuJiandan102[0]) && (biaozhunJiandanSqlText1022 == stuJiandan102[1]) && (biaozhunJiandanSqlText1023 == stuJiandan102[2]) && (biaozhunJiandanSqlName102 == QuizHelper.JianDanSqlName2)) || ((biaozhunJiandanSqlText1024 == stuJiandan102[0]) && (biaozhunJiandanSqlText1025 == stuJiandan102[1]) && (biaozhunJiandanSqlText1026 == stuJiandan102[2]) && (biaozhunJiandanSqlName102 == QuizHelper.JianDanSqlName2))),程序的性能怎么就大大降低了!我真无语了,微软的东西按理说应该是完美的,这也太坑爹了!安德斯·海尔斯伯格,既然你身为Delphi之父的同时你又是C#之父,你在地球上这么"父",既然你号称在地球上你对汇编语言的理解最深刻,既然你综合了Delphi、VB、C、C++并且借鉴了JAVA的基于DoNetFrameWork的C#语言怎么就还不完美不和谐呢?
请问c#保存excel出现这样的提示是怎么回事?
有关调用实时(JIT)调试而不是此对话框的详细信息, 请参见此消息的结尾。 ************** 异常文本 ************** System.IO.FileNotFoundException: 未能加载文件或程序集“Office, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。 文件名:“Office, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” 在 WindowsFormsApplication1.Form1.output_button_Click(Object sender, EventArgs e) 在 System.Windows.Forms.Control.OnClick(EventArgs e) 在 System.Windows.Forms.Button.OnClick(EventArgs e) 在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.ButtonBase.WndProc(Message& m) 在 System.Windows.Forms.Button.WndProc(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 警告: 程序集绑定日志记录被关闭。 要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)设置为 1。 注意: 会有一些与程序集绑定失败日志记录关联的性能损失。 要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。 还有一个问题就是打开excel03没问题,打开07时提示不是预期表格,请问应该怎么做?
C#写一款ip摄像头上位机,用RealPlayWnd.Handle;为啥是无效的句柄
我在用C#做某款小众摄像头的二次开发,写成功过海康产品的上位机,但是这款一直遇到一个问题困扰着我! 给的Demo用的是C++语言,我选择C#开发,在成功调用了初始化函数和登录设备函数后(说明给的dll是对的),调用打开通道Client_OpenChannel(OPEN_INFO *pOpenInfo)函数却一直无法实现。 我是这样写的: ![图片说明](https://img-ask.csdn.net/upload/201602/25/1456395796_291514.png) 一直返回无效句柄的意思。 厂家给的Demo里是这样写的: ![图片说明](https://img-ask.csdn.net/upload/201602/25/1456395886_293092.png) 这个结构的定义 [StructLayoutAttribute(LayoutKind.Sequential)] public struct tagIPNC_OPEN_INFO { public IntPtr hPlayWnd; public emVideoRes ImageSize; public emVideoCodecType CodecType; public emAVStreamType StreamType;//主码流和次码流分辨率相同时,一般录像时使用主码流,预览时采用次码流 public emAVStreamProtocol Protocol; public bool bOpenDisplay;//是否打开预览 public bool bScale;//是否按比例显示画面 public bool bPlayAudio;//是否播放音频 public bool bRecvAvData;//是否回调未解码数据 public bool bRecvDecodedAvData;//是否回调解码数据,未打开预览时,不能回调解码数据 } //打开通道函数的定义 [DllImport("IPNCSDK.dll", EntryPoint = "Client_OpenChannel", CallingConvention = CallingConvention.Cdecl)] public static extern emReturnValue Client_OpenChannel(ref tagIPNC_OPEN_INFO pOpenInfo); 我想问: 1.这个返回的emReturninvalidateHwnd,基本上我确定了是说我赋的窗口控件的句柄不对 info.hPlayWnd = RealPlayWnd.Handle;可我以前的都是这么赋的,不知道为啥不对 2.相关C++到C#的转换我也做了很多回了,基本格式相关转换应该也没问题 3.这是一个小厂商的产品,但某一方面性能很好必须选用,他们之前也没用C#开发过,难道是他们的DLL的问题?隐隐有一种不安,我在执行状态下会出现这种 ![图片说明](https://img-ask.csdn.net/upload/201602/25/1456395916_576985.png) SDK core dumped 这个core dumped是什么意思呢? 联系过厂家他们不管C#的事,这个问题困扰了我半个多月一直找不到端倪,求助大家,感激不尽!!!!
大牛们 XP系统可以使用针对VS2008C#winform的内存性能分析工具有哪些?
编写了一个多线程程序,跑了一段时间内存增加了几百兆,通过调用GC.Collect有改善,但是还会增加几十M。 还有一个奇怪的现象就是通过代码调试关闭主窗体,程序还是在调试状态,通过BreakAll 发现在执行Dispose函数 continue 会执行很久
C#的ArrayList和List泛型有什么区别?分别从性能、功能、难易等方面详细分析
C#的ArrayList和List泛型有什么区别?分别从性能、功能、难易等方面详细分析
C#和python传输数据,时间性能要求高
不同进程,C#发送一个byte数组,python端接收数据并转为矩阵或者数组。目前使用socket,但是接收后字符串转矩阵花费时间太多(因为byte数组极大50W),有没有共享内存,能直接访问内存地址获取数据的方法。
如何高效获取计算机所有性能数据
最近在做一个项目需要收集计算机的性能数据,例如 cpu,iops,内存,网络等等,我是用的C#。   我现在采用的方法是PerformanceCounter这个类去创建计数器实例,然后通过NextValue()获取相应的值,获取整体的性能数据还好说。   在收集进程的性能数据遇到了一些问题,因为进程的性能计数器非常多,导致获取一次进程性能数据的cpu占用高达20%,获取一次的时间需要五六秒的时间。   我看任务管理器里面实时获取所有进程的性能数据所占用的cpu并不高,通过计算机管理->性能里面添加计数器进行监视所占用的cpu也不高,有谁知道这是如何实现的吗?或者有谁做过相应的开发和研究,能够提供一些思路。
各位大神,请问vs性能调试工具是仅仅能对c#语言编写的程序调试吗?
最近写了一个c++程序,但耗内存特别大,所以想做一下性能分析,看看到底是那个 地方占了内存,刚好vs有一个性能分析工具,请问vs的性能分析工具是不是可以分析 所有语言程序写的代码?
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
我在支付宝花了1分钟,查到了女朋友的开房记录!
在大数据时代下,不管你做什么都会留下蛛丝马迹,只要学会把各种软件运用到极致,捉奸简直轻而易举。今天就来给大家分享一下,什么叫大数据抓出轨。据史料证明,马爸爸年轻时曾被...
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
20道你必须要背会的微服务面试题,面试一定会被问到
写在前面: 在学习springcloud之前大家一定要先了解下,常见的面试题有那块,然后我们带着问题去学习这个微服务技术,那么就会更加理解springcloud技术。如果你已经学了springcloud,那么在准备面试的时候,一定要看看看这些面试题。 文章目录1、什么是微服务?2、微服务之间是如何通讯的?3、springcloud 与dubbo有哪些区别?4、请谈谈对SpringBoot 和S...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
2020 年,大火的 Python 和 JavaScript 是否会被取而代之?
Python 和 JavaScript 是目前最火的两大编程语言,但是2020 年,什么编程语言将会取而代之呢? 作者 |Richard Kenneth Eng 译者 |明明如月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: Python 和 JavaScript 是目前最火的两大编程语言。然而,他们不可能永远屹立不倒。最终,必将像其他编程语言一...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
最全最强!世界大学计算机专业排名总结!
我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您! (为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!) 目录 泰晤士高等教育世界大学排名 QS 世界大学排名 US News 世界大学排名 世界大学学术排名(Academic Ranking of World Universities) 泰晤士高等教育世界大学排名 中国共...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
使用 Python 和百度语音识别生成视频字幕
文章目录从视频中提取音频根据静音对音频分段使用百度语音识别获取 Access Token使用 Raw 数据进行合成生成字幕总结 从视频中提取音频 安装 moviepy pip install moviepy 相关代码: audio_file = work_path + '\\out.wav' video = VideoFileClip(video_file) video.audio.write_...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
为什么程序猿都不愿意去外包?
分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助
Java校招入职华为,半年后我跑路了
何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
点击上方蓝字设为星标下面开始今天的学习~今天分享四个代码量很少,但很牛逼很经典的算法或项目案例。1、no code 项目地址:https://github.com/kelseyhight...
立即提问