优化之路:精简VB中的分段应用程序(上)

2016-01-29 12:04 30 1 收藏

优化之路:精简VB中的分段应用程序(上),优化之路:精简VB中的分段应用程序(上)

【 tulaoshi.com - vb 】

  1.部件可在需要时加载,不需要时卸载。

  2.在Win95或WinNT下,即使应用程序的其他部分为16位部件,跨进程的部件也可以是32位的执行程序。

  3.远程部件可使用网络上其他机器的资源。

  另外,部件可被单独调试并可在其他应用程序里重用。在确定如何使用分段技术来优化应用程序之前,必须估计到能创建的部件类型和怎样适合应用程序。使用VB专业版和企业版,能创建以下三类部件:

  1.跨进程部件

  2.进程内部件

  3.远程部件

  三种类型并不互相排斥,可以在一个应用程序里同时使用这三类部件,但从优化应用程序的观点看,它们又各有极不相同的特性。

  一、跨进程部件是一个可执行程序,它可向其他程序提供服务,像其它的可执行程序一样,启动后,在自己的进程空间有自己的堆栈。因此,当客户使用应用程序提供的对象时,操作将从客户的进程空间转到部件的进程空间。

  与其他类型相比,跨进程部件提供了一些很有价值的特点:

  1.异步操作(“线程”)。

  2.部件不能捕获的错误不会导致调用应用程序崩溃。

  3.可在16位和32位应用程序之间相互操作。

  从优化观点看,第一点和第三点最有意义。因为跨进程部件是一个分离的程序,可以与作为客户端的部件异步操作。它有一个单独的“线程”,与客户程序构成多任务(从技术角度上讲,这不是线程,而是一个分离的进程;但从概念上看,二者等价)。两个程序可相互通讯并共享对象。在应用程序执行一些费时的操作时,异步操作就特别有用。客户可先调用部件执行该项操作,而后继续响应用户。

  即使惯用的16位应用程序或部件在32位系统上运行,也可以不必立即将它们改为32位。若使用跨进程部件将应用程序分段时,则可将16位和32位部件混合在一起并互相协调。这有助于充分利用32位部件特性,并保护在16位部件上的投资。

  考虑它们所有的能力,跨进程部件都有一个明显的缺点:性能。以下几点可显现这些不足:

  1.启动速度慢

  2.跨进程调用的开销大

  跨进程部件是一个由VB创建的执行程序,因此,与应用程序的启动相关的问题也同样存在。当从另一个VB程序中调用在VB中写的跨进程部件时,几乎所有的支持DLL已经被加载,这就大大缩短了启动部件的时间。许多部件比VB应用程序的平均规模还小,它们具有很少或根本没有要加载的窗体,这又进一步缩短了加载时间。然而,跨进程部件启动还是要比进程内部件慢。


来源:https://www.tulaoshi.com/n/20160129/1484472.html

延伸阅读
----在用VisualBasic编写Win95应用程序时,有时可能希望由程序来控制计算机的启动功能,比如当应用程序对系统注册表作了修改后需要重新启动Win95。 ----那么,如何在应用程序中控制Win95的启动呢?由于VisualBasic自身没有提供相关的命令和函数,我们只好求助于WindowsAPI函数ExitWindowsEx,调用该函数,我们可以完成重新启动、关机、...
标签: Java JAVA基础
  你的J2EE应用是不是运行的很慢?它们能不能承受住不断上升的访问量?本文讲述了开发高性能、高弹性的JSP页面和Servlet的性能优化技术。其意思是建立尽可能快的并能适应数量增长的用户及其请求。在本文中,我将带领你学习已经实践和得到证实的性能调整技术,它将大大地提高你的servlet和jsp页面的性能,进而提升J2EE的性能。这些技...
1.引言 随着信息化时代的到来,人们开始广泛地使用数据库技术对大量而复杂的信息进行科学高效的管理。在数据库领域中的各种应用软件大量涌现,有Visual Foxpro,Power Builder等等,但其中ORACLE是这个领域中最优秀也是最流行的大型数据库应用软件。本文就在ORACAL中如何优化数据库及其应用程序进行了研究。 2.优化数据库 2...
标签: PHP
  大多数开发者认为面相对象的程序设计(OOP)思想和PHP是一对矛盾,但实际上,PHP封装了开发者在其应用程序中使用OOP技术的所有功能。为了证明这一点,让我们举一个经典的Vehicle(车辆)例子,其PHP类如下: class Vehicle {    // Stuff goes here! } 在我们新建的Vehicle类中,用方法(即PHP函数)来联系我们的应用程序...
标签: Java JAVA基础
合成图像 您不必从文件中读取所有的图像 — 您可以创建自己的图像。要创建自己的图像,最灵活的方法是用一个 BufferedImage 对象,它是 Image 类的一个子类,它把图像数据存储在一个可以被访问的缓冲区中。它还支持各种存储像素数据的方法:使用或不使用 alpha 通道、不同种类的颜色模型以及颜色组件的各种精确度。Color...

经验教程

765

收藏

8
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部