PB有个隐藏BUG会占用内存。影响效率。

先来做个样例吧

(1)创建一个不可视对象n_base,勾选Autolnstantiate属性

初始化事件constructor里面写messagebox('constructor','PB-BUG--constructor')

销毁事件destructor里面写messagebox('destructor','PB-BUG--destructor')

(2)创建一个窗体w_1

(3)w_1封装一个方法of_test_bug1里面写

if 1=1 then

else

 n_base ln_base

end if

(4)w_1封装一个方法of_test_bug2里面写

n_base ln_base

(5)w_1放置一个buttoncb_1点击里面写

if 1=1 then

else

 n_base ln_base

end if

(6)w_1放置一个buttoncb_2点击里面写

of_test_bug1()

(7)w_1放置一个buttoncb_3点击里面写

if 1=1 then

else

 of_test_bug2()

end if

做完后。执行简单的样例。分别点击buttoncb_1、cb_2、cb_3。

会发现。

cb_1、cb_2都会调用不可视对象n_base的初始化以及销毁事件。而cb_3却不会。

有的写法即使没调用到对象也会初始化、销毁对象。

这样,即使不想调用对象的时候。也会去初始化跟销毁对象,那就会影响效率。占用内存。

那么,怎样降低这样的情况呢?

方法一:像buttoncb_3的点击里面的方法那样处理。

方法二:去掉不可视对象的Autolnstantiate属性。调用的时候才用create的方法

n_base ln_base

ln_base = create n_base

这样就能够降低这种影响。

不可视对象的自己主动实例化BUG的更多相关文章

  1. Spring学习笔记之 Spring IOC容器(一)之 实例化容器,创建JavaBean对象,控制Bean实例化,setter方式注入,依赖属性的注入,自动装配功能实现自动属性注入

    本节主要内容:       1.实例化Spring容器示例    2.利用Spring容器创建JavaBean对象    3.如何控制Bean实例化    4.利用Spring实现bean属性sett ...

  2. 怎么说, 开发会很乐意去主动修改bug?

    怎么说, 开发会很乐意去主动修改bug? 一图顶上千言万语,如下:

  3. 【初识Spring】对象(Bean)实例化及属性注入(xml方式)

    title: [初识Spring]对象(Bean)实例化及属性注入(xml方式) date: 2018-08-29 17:35:15 tags: [Java,Web,Spring] --- #初识S ...

  4. 引用对象的使用和易产生bug的示例

    本文属原创,转载请注明出处:http://www.cnblogs.com/robinjava77/p/5481608.html  (Robin) QuoteTest(引用对象技巧) import ja ...

  5. 使用Delphi对象(声明、实例化、构造、释放)

    一.声明和实例化 在使用一个对象之前,用class关键字声明一个对象.可以在一个程序或单元的type部分声明一个对象类型: type TFooObject = class; 除了声明一个对象类型,通常 ...

  6. C#对象的声明与实例化

    在代码中我们经常能看到下面这样的语句. A a = new A();(1) B b = null;(2) C c;(3) 代码( 1 ) 创建 A 的对象并对其进行初始化. A :类: new A() ...

  7. JS中有关对象的继承以及实例化、浅拷贝深拷贝的奥秘

    一.属性的归属问题 JS对象中定义的属性和方法如果不是挂在原型链上的方法和属性(直接通过如类似x的方式进行定义)都只是在该对象上,对原型链上的没有影响.对于所有实例共用的方法可直接定义在原型链上这样实 ...

  8. spring中获取dao或对象中方法的实例化对象

    spring中获取dao的中方法的实例化对象: //获取应用上下文对象 ApplicationContext ctx = new ClassPathXmlApplicationContext(&quo ...

  9. 【初识Spring】对象(Bean)实例化及属性注入(注解方式)

    通过xml的方式进行对象的实列化或属性注入或许有一些繁琐,所以在开发中常用的方式更多是通过注解的方式实现对象实例化和属性注入的. 开始之前 1.导入相关的包(除了导入基本的包还要导入aop的包): 创 ...

随机推荐

  1. ViewController详解

    一.生命周期 当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序1. alloc                              创建对象,分配空间2.init (initWit ...

  2. javascript eval和JSON之间的联系(转)

    eval函数的工作原理 eval函数会评估一个给定的含有JavaScript代码的字符串,并且试图去执行包含在字符串里的表达式或者一系列的合法的JavaScript语句.eval函数将把最后一个表达式 ...

  3. Linux字符设备驱动file_operations

    struct _file_operations struct _file_operations在Fs.h这个文件里面被定义的,如下所示: struct file_operations { struct ...

  4. USB HID Report Descriptor 报告描述符详解

    Report descriptors are composed of pieces of information. Each piece of information is called an Ite ...

  5. C#,.net获取字符串中指定字符串的个数、所在位置与替换字符串

    方法一: public static int indexOf (字符串/字符,int从第几位开始,int共查几位) string tests = "1absjjkcbfka2rsbcfak2 ...

  6. HTML5 Canvas图像放大、移动实例1

    1.前台代码 <canvas id="canvasOne" class="myCanvas" width="500" height=& ...

  7. HTML5 Canvas显示本地图片实例1、Canvas预览图片实例1

    1.前台代码: <input id="fileOne" type="file" /> <canvas id="canvasOne&q ...

  8. (转)js 中{},[]中括号,大括号使用详解

    一.{ } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数. 如:var LangShen = {"Name":"Langshen",&qu ...

  9. js引用类型姿势

    栈 1)var a=new Array(),a.push(a,b,...),a.pop() queue 1)var a=new Array(), a.push(a,b,...),a.shift() a ...

  10. 一个基础的CURL类

    /** * 一个基础的CURL类 * * @author Smala */ class curl{ public $ch; public $cookie = '/cookie'; public $rs ...