小编bso*_*aid的帖子

托管C++与UnManaged/native C++的性能

我正在编写一个非常高性能的应用程序,每毫秒处理和处理数百个事件.

Unmanaged C++比托管c ++更快吗?为什么?

托管C++处理CLR而不是OS和CLR负责内存管理,这简化了代码,并且可能比非托管C++中"程序员"编写的代码更有效?还是有其他原因?当使用托管时,如果对程序员透明并由CLR处理,那么如何避免动态内存分配(这会导致性能损失)?

回到我的问题,托管C++在速度方面是否比非托管C++更有效?为什么?

c++ performance unmanaged managed

9
推荐指数
2
解决办法
1万
查看次数

如何减少垃圾收集性能开销

我的应用程序分析显示了大量的垃圾收集开销.分析器没有深入到垃圾收集.我该怎么做才能减少这种开销?

我有很多短命的arraylists和一些长寿,只有在应用程序关闭时才会死亡.

c# performance garbage-collection

5
推荐指数
2
解决办法
4336
查看次数

为陷入困境的进程创建转储文件的最简单方法

我已经找到了多种创建转储文件的方法,例如使用windows utitlity userdump和adplus.vbs以及其他一些方法.我在任务管理器中找到的一个选项似乎是最简单和最简单的一个打开任务管理器+选择进程+右键单击+创建用户转储.使用taks manager创建的.dmp文件是否与使用win实用程序创建的文件不同?

让用户从任务管理器创建转储文件比让他运行实用程序要容易得多.

c# windbg dump

5
推荐指数
1
解决办法
3188
查看次数

请解释一下!SyncBlk的windbg命令

首先,是否有一个获取每个sos命令的帮助和参数的命令windbg

其次,我想了解!syncblk输出

Index SyncBlock MonitorHeld Recursion Owning Thread Info  SyncBlock Owner
  201 05b9493c          979         1 05bc1040   bcc  45   022f3490 System.Collections.ArrayList
 2875 05b4c914            1         1 17b99e10  1af8 290   024862d8 MyClass
 2945 05b4b66c            1         1 17d1a290  12c0 752   02482940 MyClass
Run Code Online (Sandbox Code Playgroud)

MonitorHeld显示由持有的监视器#synblk.写入1和读取2,但列的其余部分是什么意思?

说我有一个C#代码

MyClass MyObj;
MyObj = new MyClass();
Run Code Online (Sandbox Code Playgroud)

现在,如果我这样做

lock (MyObj)
{
}
Run Code Online (Sandbox Code Playgroud)

请问syncblk所有者列秀"MyClass的"?同样,当我运行此!SyncBlk命令时,它到底显示了什么?它是否显示了lock()and Monitor.EnterMutex()以及其他锁定机制的数量?

c# command windbg sos

5
推荐指数
1
解决办法
2853
查看次数

C++将函数实现为宏的优点/缺点

将业务逻辑功能实现为宏是一个好主意吗?

我继承了一些遗留的c ++代码,我发现很多业务逻辑函数都是作为冗长的神秘宏实现的.

宏是否优于函数?使用宏的一般原理是什么?

什么样的逻辑最适合宏?

这是代码中的一个简单示例

#define INSERT_VALUES(IN,ID,EO)     {\
                                        double evaluationOutput = EO;\
                                        int controls = 0;\
                                        int input_controls = m_input_controls[IN];\
                                        if(m_value_list[IN].ShouldProcess())\
                                            {\
                                            evaluationOutput = m_evaluationOutput[IN];\
                                            controls = m_controls[IN];\
                                            }\
                                        VALUE_EXIST(evaluationOutput,controls,input_controls,IN,ID,Adj);\
                                        m_evaluationOutput[IN] = controls > 0 ? evaluationOutput : 0.0;\
                                        m_controls[IN] = controls;\
                                        m_input_controls[IN] = input_controls;\
Run Code Online (Sandbox Code Playgroud)

}

c++ macros

4
推荐指数
2
解决办法
5644
查看次数

"符号"在"加载符号列表"中的含义是什么?

"符号"在"加载符号列表"中的含义是什么?或者在MSDN的这个例子中:

"#if允许你开始一个条件指令,测试符号或符号,看它们是否评估为真."

这些符号在哪里定义和声明?

c# c++ symbols

1
推荐指数
1
解决办法
2012
查看次数

实现共享内存时要考虑的要点

我计划在服务器(C++)和客户端(C#应用程序)之间实现boost的共享内存.只有读取器和一个写入器,数据共享(读和写)的频率是每毫秒数千个时间.

涉及的风险是什么?

c# c++ shared-memory

0
推荐指数
1
解决办法
1006
查看次数

如何在C#windows窗体应用程序运行时将命令行参数传递给它

我有ac #windows窗体应用程序框架2.0

我希望能够在我的应用程序运行时将命令从另一个进程或命令行传递到我的Windows窗体应用程序.我该如何发送以及如何接收?

我知道它可以通过IPC来完成,但我不想去那里,因为这个传递参数功能将很少使用,我正在尝试尽可能在Windows窗体应用程序中进行最小的更改.

编辑:现在我通过双击icon运行Windows窗体应用程序.可以让它从命令行运行作为进程(控制台应用程序???)并从命令行发送命令?

编辑:进一步说明:该命令由用户输入.

c# command-line-arguments winforms

0
推荐指数
1
解决办法
3156
查看次数