社区
C#
帖子详情
.Net开发轻便的WinForm程序
vikey
2003-09-29 04:33:43
开个贴子讨论.Net开发WinForm程序,如何生成轻便的应用程序。
我开发了一个WinForm管理系统。运行起来非常慢,感觉没有Delphi开发出来的产品
执行速度快。
顺祝广大程序员国庆节快乐!
...全文
99
29
打赏
收藏
.Net开发轻便的WinForm程序
开个贴子讨论.Net开发WinForm程序,如何生成轻便的应用程序。 我开发了一个WinForm管理系统。运行起来非常慢,感觉没有Delphi开发出来的产品 执行速度快。 顺祝广大程序员国庆节快乐!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
JB-Zhang
2003-09-30
打赏
举报
回复
其实.NET的程序慢主要有两个原因:1、是因为多一个IL,另外一个是因为要是编写数据程序的话,使用了大量的DataSet,DataSet是一个内存中的数据库,当然也没那么夸张,可以说它是数据库的很大一部分在内存中的映射吧,所以占用了大量的内存。
解第一个问题,只有提高机器的性能,和尽量使用灵活、高性能的数法。第二个问题原来是可以解决的,我们公司曾经做过一个系统,在运行时,这个程序占用了800多M的内存,再运行一次的时间却内存不足了,连虚拟内存也不行,原因在于,系统中使用了太多的DataSet,其实.NET在运行时,DataSet是作为一个对象被装入内存的,有时个我们需要很多个DataSet同时工作的时候,就会出现内存中存在多个民巨型DataSet占用了大量内存的情况,此时就会是系统运行的内存消耗峰值,我们经过研究,其实很多DataSet应该很早就被清除出存内了,可是因为.NET的自动垃圾回收根本达不到我们程序要求的收回速度,就是说,我们有些地方没有用到一些DataSet了,可是它还是没有被回收,要等到一个进程结束后才回收,那我们宝贵的内存就被这些“垃圾”占了。所以我们解决的办法就是手动回收内存,可以使用GC类中的相关方法,大家研究;其实不单是DataSet这类的对象可以被清除,内存中任何对象都可以被清除出内存,但是大家使用GC的时候就要小心了,你很有可以把还有用的数据清除掉。所以这样做又好像回到C++年代了,程序的内存管理又由程序员控制了:),不过我更喜欢由我来控制,老实说,我还真的信不过.NET的垃圾回收机制。
coudoufu
2003-09-29
打赏
举报
回复
确实慢了点,希望有所改进……
5956
2003-09-29
打赏
举报
回复
可以使用本机映像生成器Ngen.exe
本机映像生成器创建托管程序集的本机映像,并且将该映像安装到本地计算机的本机映像缓存中。本机映像缓存是全局程序集缓存的保留区域。一旦您为某个程序集创建了本机映像,运行库在每次运行该程序集时就会自动使用该本机映像。不必执行任何其他的过程就可使运行库使用本机映像。在程序集上运行 Ngen.exe 可以提高程序集的加载和执行速度,原因是它可以从本机映像缓存中还原代码和数据结构,而不是动态生成它们。
具体使用方法可查MSDN
daou101
2003-09-29
打赏
举报
回复
有关.NET优化的问题,谁有这方面的心得,欢迎讨论
daou101
2003-09-29
打赏
举报
回复
我想这涉及一个程序优化的问题,我最近编写一个信息提取软件,从文档中过滤想要的信息,开始很慢,2.0版后,我对程序中的这些问题进行了优化:
1.非万不得以,不自定义排序;
2.非万不得以,不用递归
3.后台多线程读文件
4.后台懒汉式写信息
5.共享式文件注册表(不使用远程注册表操作),用XML实现
7.通信模块独立,且后台运行,它只完成通信任务,不接受主程序控制
在.NET上作这些改进极其容易,这样出现用户等待的情况几乎没有了,而且对网络共享提取信息,共享配置信息非常方便。我试着用VC++实现,发现恐怕需要3倍的工时,速度可能有少量的提升,但这好像得不偿失。
External
2003-09-29
打赏
举报
回复
c#是OO语言,OO本身就是为了解决complexity才产生的,
如果相对问题的complexity,速度显得无关紧要的话,选择c#做winform程序就比较合适了。
SaSBYa
2003-09-29
打赏
举报
回复
To nehc(青义居士) :
----------------------------------------------------------------------
其实,第一次编译il是比较慢些。不过,你可以把你的程序加到启动组里面(给个特定的参数嘛,要它不声不响的)。然后程序启动退出。等用户“第一次”运行的时候,就快的很了。
----------------------------------------------------------------------
还是你高明,这样的话又快,显示的占内存可能还少些,不如干脆做个程序,内部调用那个程序集,这样,明修栈道,暗渡陈仓。呵呵。
个人看法,同herofyf() 比较相似:<---我只能提供尽量用存储过程,和少用一些dataset!--->
不过,我要加一句,动态生成DataSet(手工生成DataSet),并尽量使用存储过程,同时,少用代码向导,这样的话,你可以少产生一些什么接口,函数,过程等等,同时在类的层次上下点工夫,这样就可以使代码在运行时占用更少的内存,或许也可以提高一点速度(如果系统分配内存的时间不是很多的话)。另外一点,Windows2003内部集成了1.1的内核,运行咱们的程序速度和性能都有提高,内存相对占用也少了些。可能可以这样说吧,Win2K/XP/9X/ME下安装的.Net Framework像是操作系统的“外挂”,所以慢些,占内存多些吧。
(一家之言,仅供参考)
changezhong
2003-09-29
打赏
举报
回复
delphi在开发网络方面的程序不如.net,但是开发winapplication的话,delphi略胜一筹]
同意!
祝所有的程序员,节日快乐
ego
2003-09-29
打赏
举报
回复
有这样的工具嘛?想知道
niaoren
2003-09-29
打赏
举报
回复
好像有把.net中间语言转换成机器语言的工具
zhpsam109
2003-09-29
打赏
举报
回复
我也写了一个winform的,感觉没有那么慢!
kuangren
2003-09-29
打赏
举报
回复
en
希望以后可以改善~
qiuji
2003-09-29
打赏
举报
回复
因为.net生成的Windows应用程序先是中间代码,运行时将中间代码转换成机器代码,所以运行起来速度稍微慢了一点。
borlang
2003-09-29
打赏
举报
回复
用.net开发winform目前没什么优势,但以后操作系统自带.net FrameWork以后就难说了。
isonme
2003-09-29
打赏
举报
回复
其实目前来看,我觉得.net还是写 web form比较好,win form的话运行起来确实有点慢慢的
linday
2003-09-29
打赏
举报
回复
国庆节快乐!!
hihin
2003-09-29
打赏
举报
回复
unmanaged c++写dll,c#写界面,我想可能速度还成.
cnhgj
2003-09-29
打赏
举报
回复
delphi在开发网络方面的程序不如.net,但是开发winapplication的话,delphi略胜一筹
shenshenxiaoyuan
2003-09-29
打赏
举报
回复
祝大家节日快乐!!
nehc
2003-09-29
打赏
举报
回复
其实,第一次编译il是比较慢些。不过,你可以把你的程序加到启动组里面(给个特定的参数嘛,要它不声不响的)。然后程序启动退出。等用户“第一次”运行的时候,就快的很了。
不要说是我出的主意。
加载更多回复(9)
.net
下的
winform
简单在线考试系统
.net
做的
winform
应用
程序
,
开发
语言为C#的在线开始系统,系统界面简单,代码浅显易懂,适合于刚开始学
.net
的人,系统与数据库结合有一定的学习价值
基于C#/
.NET
实现的
Winform
系统-图书馆管理系统
一整套的
开发
代码,从数据库的建库开始,到整个
程序
的完成,有效果图,有代码,适合进行
开发
实战,整个系统基于。net
开发
,需要的朋友自行下载
C#/
.Net
开发
精品系列课程——初级至高端完整技能体系
0基础学习C#/
.Net
开发
,快速掌握从初级到高端的C#/
.Net
开发
技能,达到1-3年工作经验水平。含3个系列课程:C#入门课程:语言基础,编程基础,面向对象,
WinForm
,常用类,文件,集合,正则表达式,jQuery;
.Net
中级课程:ADO
.NET
,一般处理
程序
,三层架构,WebForm,委托、匿名方法、Lambda、Linq查询,MVC,Ajax;高级课程:
.Net
企业级系统架构设计实战
使用
.net
core3.0 正式版创建
Winform
程序
的方法(图文)
前阵子一直期待
.net
core3.0正式版本的出来,以为这个版本出来,
Winform
程序
又迎来一次新生了,不过9.23日出来的马上下载更新VS,创建新的
.net
core
Winform
项目,发现并没有
Winform
窗体设计器。而微软目前则是通过插件的方式,让我们单独下载
Winform
设计器,这个设计器还是预览版本,很多功能还是没有实现的,只能算是一个简单的雏形,本博客案例介绍基于
.net
core3.0创建一个普通的
WInform
程序
,让大家了解下基于
.net
core3.0创建的
程序
的大概模样。 1、
开发
环境的准备 要做基于
.net
core3.0的
WInform
开发
,需要首先更新你的V
.NET
混合
开发
解决方案7
WinForm
程序
中通过NuGet管理器引用集成WebView2控件.doc
.NET
混合
开发
解决方案7
WinForm
程序
中通过NuGet管理器引用集成WebView2控件.doc
C#
110,537
社区成员
642,576
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章