Tag: 性能

在WPF中构建CAD程序

– 在WPF中构建CAD程序: 我想构建一个一次有10000个LINE对象的CAD程序。 我正在使用LineGeomery类绘制添加到Canvas线条。 我已经实现了Zoom和Pan ,到目前为止性能非常好。 只有一个主要的失望: 线条的Thickness在缩放时缩放。 我试图将线的Thickness属性Bind到一个因子以保持它们不变,这可以工作,但在缩放时会显着降低性能。 在MouseWheel上清除和绘制具有新厚度的新线条也是MouseWheel 。 这个也降低了性能并且在当前方法中不实用。 – 现在我有什么解决方案? 坚持使用当前方法并忽略厚度的变化 在GDI +中完成整个工作 WPF中的主机GDI 使用WPF Viewport3D(LineThickness会在那里不变吗?) – 其他解决方案? 你会采取什么其他途径。 我是WPF和编程的新手,我很想学习。 更新: 这就是我现在正在做的方式。 我使用Pen a Brushes在可视层上绘制3000条线。 然后在MouseWheel事件上,我重新绘制所有具有更新厚度的线。 此外,我不会向用户显示其余的线,直到他缩放,因此我只在每个MouseWheel事件中创建10000行中的3000行。

在性能方面有什么好处? 键入或类型 ?

在C#中使用二维数组( type[,] )或数组数组( type[][] )是否更高效? 特别是对于初始分配和项目访问

按参数列表筛选SQL查询

我有一个查询,我想返回与值列表关联的所有行。 你可以这么简单地写成: select * from TableA where ColumnB in (1, 2, 3, 5) 我可以用C#生成这个查询并执行它。 然而,这显然不太理想,因为它不使用参数,它会在尝试缓存查询计划时受到影响,并且显然容易受到SQL注入攻击。 另一种方法是将其写为: select * from TableA where ColumnB = @value 这可以通过C#执行多次,但这会导致N DB命中。 我能看到的唯一另一个选择是创建一个临时表并以这种方式连接它,但是我没有看到这一点,因为它会更复杂并且受到与第一个选项相同的限制。 我正在使用SQL Server和OLDB,创建查询不是问题。 我正在努力创造最有效的流程。 这三种方法中哪一种更有效? 我错过了替代方案吗?

方法名称是否编译到EXE中?

在将 Windows应用程序项目编译为EXE后,类,方法和变量名称是否包含在MSIL中 ? 对于混淆 – 更少的名称,更难逆向工程。 而对于性能 – 更短的名称,更快的访问。 例如 ,如果通过名称调用方法: 保持名称简短 ,更好的命名查找性能。 保持名称神秘 ,反编译更难。

Regex vs Tryparse性能最佳

在我的ASP.net项目中,我需要为用户输入validation一些基本数据类型。 数据类型类似于数字,小数,日期等。 在性能方面我应该采取的最佳方法是什么? 它是通过Regex.IsMatch()还是通过TryParse() ? 提前致谢。

找到具有最大值属性的元素的速度更快

通常,要找到具有最大值属性的元素,我喜欢这样 var itemWithMaxPropValue = collection.OrderByDescending(x => x.Property).First(); 但从性能的角度来看,这是好方法吗? 也许我应该做这样的事情? var maxValOfProperty = collection.Max(x => x.Property); var itemWithMaxPropValue = collection .Where(x => x.Property == maxValueOfProperty).First();

ScrollViewer使用DataGrid缓慢执行

我有以下情况: 现在,当我将DataGrid绑定到大量数据(大约10,000行)时,我的性能非常慢。 事实上,我得到OutOfmemoryexception(我有8 GB的内存)! 我在某处读到这是因为ScrollViewer会覆盖DataGrid虚拟化(或类似的东西),但我不知道如何防止这种情况。 如果我删除ScrollViewer,问题就解决了! 数据加载时间不到一秒钟。 我想保留ScrollViewer(因为其他控件)并且具有良好的性能。 那可能吗? 如果没有,还有其他解决方案吗?

最有效的连接字符串的方式

我需要连接很多字符串并在其中任何一个之间加上逗号。 我有一个字符串列表 “123123123213” “1232113213213” “123213123” 而且我想得到 “123123123213,1232113213213,123213123” 我想知道实现这一目标的最佳方法是什么。 我可以这样做: private List stringList = new List { // a lot of strings in here “1234567890”, “34343434”, “4343434” }; string outcome = string.Join(“,”, stringList.ToArray()); 或者可能: StringBuilder builder = new StringBuilder(); stringList.ForEach(val => { builder.Append(val); builder.Append(“,”); }); string outcome = builder.ToString(); 哪种方式更好? 你知道连接字符串的更好方法吗?

适合字节数组的哈希码方法?

对于一个byte数组,最好的哈希方法是什么? 这些数组是序列化的类对象,包含通过TCP / IP在应用程序之间传递的jpeg图像。 arrays大小约为200k。

多维数组与一维数组

这基本上是对这个问题的重述: Java:多维数组与一维数,但对于C#。 我有一定数量的元素可以作为网格存储。 我应该使用数组[x * y]还是数组[x] [y]? 编辑:哦,所以有一维数组[x * y],多维数组[x,y]和锯齿状数组[x] [y],我可能想要锯齿状?