Article View: cn.bbs.comp.program
Article #1199��Դ����
From: ���ܵ�Сʨ
Date: Sat, 18 Apr 1998 00:00
Date: Sat, 18 Apr 1998 00:00
182 lines
14115 bytes
14115 bytes
�ڴ�©��
���������ڵġ�Ԥװ�����һ�����ᵽ��"�ڴ�©��(Memory L
eak)",���dz���Ա���û����ܹ��ĵ����⡣һ������װ�벢�ҷ���
���ڴ�,���ڶ��ر�ʱȴû���ͷŷ�����ڴ�,����,�ڴ�©����
�����ˡ��ڿ���������Ҳ�����ڴ�©��,�������������Ƶ�,������
�DZ���ע�������Լ��Ĵ�������ɵ��ڴ�©����
���п�������ڴ�©������,ʹ��CREATE��䴴��һ�������û
���ö�Ӧ��DESTROY���������ۺ�ʱ,��CREATE������һ����
��,�ͱ��븺���ڸö���ִ�����֮���ͷŷ�����ڴ档
��:����һ��transaction����:
Transaction My_Transaction
My_transaction=CREATE Transaction
��������������,Ӧ�����ö���:
DESTROY-My-Transaction
(ע��:SQLCA��Ӧ���Զ�����,ͬʱҲ�Զ��رա�)
�ڴ�©���ij��־������뿪����ʹ���˷ǿ��ӻ��û������йء�
��Ϊ���ֶ���ֻ����C REATE��䴴�����һ��ʵ��,����粻����ʹ
��DESTROY������,���Ȼ���´���������OpenUserObject��Open
User-ObjectWithParm����Ķ�̬�û�����,ͬ��Ҫ�����ڽ�
��ʹ������ʱ������Ӧ��CloseUserObject����
����֪��,PowerBuilder�ܹ��Զ�������һ�������еij����
��,����Ϊʲô������Ӧ�ý���ʱ�Զ�����û��Լ������Ķ�����?��
ΪPowerBuilder�������ؼ��б��еĶ���,����ֻ��һ������(�細
��)����������Щ����Ż����ڿؼ��б?��(�������ɼ�Ķ���);
��̬���û�����ͷǿ��ӻ�����,��PowerBuilderȫ�ֶ����ʵ��
(transactions��error ��message�ȵ�)һ��,���ڶ���Ŀ����б���
��������ӵ������ϵġ��رո�����ʱ,ϵͳ����֪��Ҫ�����Щ��
̬����Ķ��������û���ֹ��������,���ǽ�һֱ���ִ�
״̬,����פ���ڴ���,ֱ��ʹ�ù��������,���߹ر�Windowsϵͳ��
ʹ����Windows3.1 Reso urce Kit���ṩ���ڴ���Դ���������Ĺ�
��,��ʹ���ڲ��Թ���м����Դ��ȷ����Դ����Ԥ��������ͷ�
��
�ڴ����
��Windows3.xƽ̨��,������Ա����ʱ���������������:������
��32M�ڴ�,����ֻ������Ӧ��������,����PowerBuilderȴ������ʾ
�ڴ治��(Out of Memory)�����û���ʹ��ijӦ�����ʱ,Ҳ��ͬ���
���ڴ治�������,�����û�ֻ�ùر������Ӧ��,ֱ�����ֹر���ij
һ�����ͷ����㹻���ڴ�ռ�ɹ�PowerBuilder����Ϊֹ�������û�
��ʼ��Թ������,���߿�ʼ��ԹPowerBuilder��
��ʵ�ڶ��������,���Ƕ���Ӧ������,����ĸ�Դ����Window
s���?����֪��,���ϸ������Ͻ�,Windows������һ������ϵͳ,��
ֻ��һ��DOSӦ�ó���,����ȻҪ��̶��ij���ռ䡣��Щ�ռ�ֲ���
1M���µ���λ�ڴ��С������ʹ�ô����/C��DOS����MEM,��ῴ
���������µ���ʾ(�����±�)��
������DOS�ڴ�����640K��1M��λ�ڴ��֮����360K(Լ384,000
�ֽ�)�Ŀ����ڴ�,������ʾ��,"��λ"�ڴ��"����"�ڴ�֮��ȴ�н�5
00K���á�"����"�ڴ�һ������װ������������������,��"Win38
6"һ��Ҳ��ʾ����42K����,���DZ���Щ��Ҫ�̶���ַ�ռ��Ӧ��ʹ��
�ġ���Windows����һ��������ʱ,Windows��װ��ģ��Ϊ������
һ��������ݿ�(TDB )�����������ݿ���뱻װ�뵽1MB�����ڴ�,
������С����Ϊ200�ֽڡ�ԭ����������ݿ���ĵڶ�������һ����
���ǰ(PSP),����Windows1.0��2.0��3.0ʵģʽ�����,ʹ�����
Ψһԭ���Ǹ�����ص���Ӧ�����õ�MS-DOS��չ�����ڱ���ģʽ��
Windows�в����DZ����,������Windows3.1����ģʽ���Ա�������һ
�ṹ��
������Ļ����ж����ڴ�,��ij������ȥ��ȡ��ο��ÿռ�,û
��ʲô����������������һ����,�Լ����潫�ᵽ��64K GDI��USER
��,��Windows3.X���������ƵĴ��롣
���е�Windows�����������ҪһЩ����1M���µ��ڴ������
��������һ��ij���������һЩ�̶����ڴ���,��Щ����Ҫ����
����һЩ�ڴ�ռ�,����Щ�д���ij����ܿ����ĵ��������
�ڴ�ռ�,��ͻ����ǰ���������ᵽ���ڴ治�����⡣����PowerBu
i lder�����������Լ�ȥ������Щϡ�е���Դ,��Ҳʹ���������
����ԭ��������ڴ治�����⡣
C����Ա�����Ϥ��GMEM_FIXED������Global-DosAlloc�������
�ڴ档������������ͼ�������1M���ڴ档HEAPWALK.EXE(��
��Windows SDK��C++��������)�����Ӧ�ó����ܲ鿴1M���·����
�ڴ��,�Ӷ��ȷ��ȷ����ЩӦ�óԵ��˱�����ڴ���Դ��������M
S -DOS�е�LoadHigh����,��һЩפ������װ��߶˶��ͷų����ڴ�,
��������Ҳ�����˿��õ���λ�ڴ�,��ð취ֻ�������ԡ�
����Windows��Դ
��������Windows�г��������������Դ,������USER��GDI��Դ
����Щ��Դ��������������������ݿ���һ��,Ҳ�DZ�Windows����
�������ڴ����Ƶ�,���Ƕ��в��ܳ���64K�����ơ�����ζ����ʱ����
�ǻ����ڴ������������ڴ治�㡣
GDI��Դ����Ӧ�����õ�����Դ�����豸�����ġ�ÿ��λͼ��
ͼ�ꡢ��ꡢ��ݴ��ڡ��û�����ʹ��ڶ���Ҫ������Դ������Զ�
�幤������GDI��Դ���������,����һ�㲻�������鷳�����ڡ����
���ںͰ�ť�������ù�GDI��Դ��GDI��Դ������һ��������ȼ��ٵ�
20%���¡�
USER��ԴҲ��ÿ��������Ҫ����Դ�����һ���û�������һ��
�������,����ÿ��������ҪUSER��Դ(����������ȵ�),����
����µ��ö�̬��رյĶ�����Ȼ������ġ���Ϊ��ݴ����ǵ�
һ����,����ʹ����ݴ�����Ϊ����Ҳ�Ǹ���Щ��Դ���ٸ�����
һ���÷�����
ͨ����������,���ǿ��Կ���Windows3.x�п��õ��ڴ�Զ������
��ʼ�����Ҫ�١�Wind ows95Ҳ�?�Ỻ����һ����,������۲졣
��̬�����Դ���
���,���ǽ���һ���ܰ���������ʱ�������ϵͳ��Դ����̡�
�������ᵽ��,ʹ��Pow erBuilder,���Dz��ܿ���ϵͳ����Դ��ʹ��,
�������ǿ�����һЩ��SDK��������������Դ��ʹ�á����ǽ�
ʹ��һ���ǿ��ӻ�������ΪSDK�Ľ������Ȼ��Ҳ���Խ�SDK����
����Ϊȫ���ⲿ����ͨ��ȫ�ֺ������������ǡ�
����һ:
����API���ʶ���NVO_API_ACCESS;
����һ������������Ӧ���¼�,����CONSTRUC-TOR�¼��д�����
�¼�;
����һ�����ڳ�ʼ�����û��¼�NVO_UE_SETUP,����CONSTRUCTOR
�����
�����:
�������µľֲ��ⲿ����:
FUNCTION uint GetFreeSystemResources(uint SysResource) L
IBRARY 'user.dll'
������:
�������±���ʵ��:
Private:
/*��С����Դ����*/
Long il_usermem_limit
Long il_gdimem_limit
Long il_memory_limit
Long il_standard_threshhold
/*��Դ���ʳ���*/
Integer
sdkUser=0,sdkGDI=1,sdkMemory=2
������:
�������µ��û�������:
//**************************
//����: NVOF_Check_Resources
//����: To check system resources
//����:(��)
//����ֵ:integer
//1-�ɹ�,<0-ʧ��(�����ֵΪ��Դ���ʳ���)��
//*************************
if GetFreeSystemResources(sdkUser) < il_usermem_limit th
en
return(sdkUser*-1)
end if
if GetFreeSystemResources(sdkGDI) < il_gdimem_limit then
return(sdkGDI*-1)
end if
if GetFreeSystemResources(sdkMemory) < il_memory_limit t
hen
return(sdkMemory*-1)
end if
Return 1
������:
������Ҫ����һ���������ڽ������ǵ���С��Դ���ơ�
��������NVOF_Set_Resource_Limit��������������ͱ���ai_Re
sourceType,��ָ�������Դ����������(GDI,User�� Memory)��ai_t
hreshhold,ָ��������Դ���͵��ٽ�����ֵ��
//**************
//����: NVOF_Set_Resource_Limit
//����: Sets resource threshhold limits
//����: integer ai_ResourceType
//(ָ�������Դ��������)
//integer ai_Threshhold
//(������Դ���͵��ٽ�����ֵ)
//����ֵ:integer
//1-�ɹ�,-1-ʧ��.
////*****************
/*������Դ����*/
Choose Case ai_ResourceType
Case sdkGDI
il_gdimem_limit=ai_Threshhold
Case sdkUser
il_usermem_limit=ai_Threshhold
Case sdkMemory
il_memory_limit=ai_Threshhold
End Choose
Return 1
������:
�������¼���,��il_Default_Threshold��Ϊ�Դ�һЩ����ֵ��
����,30%���������ܽ��ܵ���͵IJ��þ����û�����Դ��,��ô����
�������¼���д�����´���:
il_Default_Threshold=30
�ڳ�ʼ���¼���,����ȱʡ�������趨�ٽ�����,�������������
ʱ������Щ���ơ���������н�������ø�һ��,����ȷ��������
Ʒ����ʱ��Դ��������⡣
NVOF_Set_Resource_Limit(sdkUser,il_Default_Threshold)
NVOF_Set_Resource_Limit(sdkGDI,il_Default_Threshold)
NVOF_Set_Resource_Limit(sdkMemory,il_Default_Threshold)
��
�������������һ��ʵ��,�ڴ�һ�����ڡ���̬��һ���û�
�����һ������֮ǰ,ͨ����ö����NVOF_Check_Resources()
����,�����ȷ���Ƿ����㹻����Դ�������������Щ����Ҳ
������Ӧ�õ��κεط��������������ƻ�����Դ��
--
[m[1;37m�� ��Դ:���ϴ�С�ٺ���Ϣ����վ bbs.nju.edu.cn��[FROM: hsia.nju.edu.cn][m
Technical Details
Message-ID:
<3O9R4M$tzB@bbs.nju.edu.cn>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB X-Google-Thread: fc86e,1b9f03c9e44c025c,start X-Google-Attributes: gidfc86e,public From: pipishi.bbs@bbs.nju.edu.cn (���ܵ�Сʨ) Subject: ��Դ���� Date: 1998/04/18 Message-ID: <3O9R4M$tzB@bbs.nju.edu.cn> X-Deja-AN: 345322571 X-Filename: Programming/M.892871638.A Organization: nju_bbs Newsgroups: cn.bbs.comp.program