当前位置:首页 > 内存 > 正文

怎么估算程序所需的内存

  • 内存
  • 2024-08-26 09:04:44
  • 5946

一、如何估算oracle内存如何计算一些命中率
(1)LC命中率:
计算公式:LibraryCacheHitRatio=sum(pinhits)/sum(pin)
SELECTSUM(pinhits)/sum(pin)<.br/>FROMV$LIBRARYCACHE
一般在98%以上,如果不是,则应考虑增加共享池、绑定变量、修改cursor_sharing等参数。
.计算共享池内存使用量:
SELECT(1-ROUND(BYTES/(&TSP_IN_M*1024*1024),2))*100||'%'
FROMV$SGASTAT
WHERENAME='freememory'
ANDPOOL='sharedpool';
其中:&TSP_IN_M是共享池总大小(M)
共享池内存使用量应稳定在75%之间90%,如果太小,会浪费内存;如果太大,则内存不足。
空闲共享池内存查询:
SELECT*FROMV$SGASTAT
WHERENAME='freememory'
ANDPOOL='sharedpool';
(2)PGA命中率:
计算公式:BPx100/(BP+EBP)
BP:bytesprocessed
EBP:extrabaitread/writing
SELECT*FROMV$PGASTATWHERENAME='cachehitpercentage';
或者查看自OEM图形界面
我们可以看到显示得到Oracle的推荐值:
SELECTround(PGA_TARGET_FOR_ESTIMATE/1024/1024)target_mb,
ESTD_PGA_CACHE_HIT_PERCENTAGEcache_hit_perc,
ESTD_OFROMV$PGA_TARGET_ADVICE;


二、如何估算西门子S7-400PLC的内存首先要了解西门子S7-400PLC的存储空间,它包括3个基本存储区(系统存储区、加载存储区、工作存储区)。扩展CPU的装载存储器,它是一个外部存储器,它最重要的作用是作为程序的备份副本。
CPU416的位内存(M)为16KB,总I/O地址空间为16KB,所以1800个I/O点没有问题高度取决于你的相关程序架构
一般来说,当您指定S7-400时,您实际上是根据程序块的使用情况选择加载内存和系统内存。,然后
然后确定所需的外部可装载存储卡(FEPROM卡或RAM卡)的大小,很少考虑I/O点数和S7400内存,位内存16KB和16KB。I/O点数足够。例如:
首先打开程序,按顺序展开到“Blocks”,然后右键选择“ObjectProperties”,在出现的对话框中选择“Blocks”子项)
用户程序内存:SizeinloadmemoryXX字节(用户程序的大小)
程序内存大小:SizeinloadmemoryXX字节(存储操作数据的存储空间)
把上面两项相加就是选择你的外部挂载内存的大小
“例如挂载存储大小:52334
”用户程序大小的意思是“工作存储大小(总计)“:40804”表示程序运行时至少需要40804字节的RAM;“加载存储大小:6498”
指存储播放数据的存储容量;可以过在系统数据内存中添加LoadStorageSize:52334来添加
LoadStorageSize:52334+6498=58832Bytes要指定特定存储卡的大小,必须至少有64KBRAM选择存储卡或FEPROM闪存。