起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 324|回复: 14

功能运行性能问题**

[复制链接]
发表于 2008-1-8 16:32:04 | 显示全部楼层 |阅读模式
一个功能在studio中直接运行时打开时间只有1,2秒钟,但初始化运行后再打开功能,需要40秒中,这两种运行方式在平台中有什么不同,为什么性能变化大去了?
回复

使用道具 举报

发表于 2008-1-8 16:53:25 | 显示全部楼层
studio中直接运行功能时是不检查组织单元的权限以及施加的策略以及环境信息的,而在运行平台中运行是会检查组织单元的权限以及加载策略和环境信息(但也不至于差那么多吧,跟踪一下吧)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-8 17:35:12 | 显示全部楼层
权限是通过功能授权做的,对性能影响应不大
也没有制定任务相关的策略
我在formshow中加断点,为什么打开功能时没有到断点,里面没有写代码,只有//
回复 支持 反对

使用道具 举报

发表于 2008-1-8 22:34:14 | 显示全部楼层
代码是否编译了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-9 08:51:20 | 显示全部楼层
肯定做了编译
回复 支持 反对

使用道具 举报

发表于 2008-1-9 09:38:05 | 显示全部楼层
这样把,楼主,你把监控打开,然后分别 直接运行这个功能 和 从系统初始化打开这个功能

然后分析Studio.exe所在目录的MonitorLog.sqb这个文件,通过SystemMonitor.exe 这个工具打开
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-9 09:45:09 | 显示全部楼层
删除恢复的以前的备份后,formshow中的断点可以了,但仍很慢;
这种情况是在升级后才有的,老版本2323中没有
跟踪代码后发现有在"标准风格主窗体"中的以下代码的一个调用慢,  如下:
procedure TSTANDARDSTYLEMAINFORM.ReloadRelevancyNavBar;
var
  lRelevancyViewNavBar: TRelevancyViewNavBar;
  lRefreshRelevanciesMessage: TRefreshRelevanciesMessage;
  lReloadRelevanciesMessage: TReloadRelevanciesMessage;
begin
  HideRelevancyNavBar;

  if TRelevancyManager.IsShowRelevancyNavBar(Context, CurrentFunc.BizClassURL.BizURL.URL) then
  begin
    FRelevancyNavBar.Clear;

    lRefreshRelevanciesMessage := TRefreshRelevanciesMessage.Create(FRelevancyNavBar);
    try
      if not CurrentFunc.Context.SendMessage(lRefreshRelevanciesMessage) then
    DefaultRefreshRelevancies(FRelevancyNavBar);  //这个调用很慢
     finally
      lRefreshRelevanciesMessage.Free;
    end;

    if CurrentFunc <> nil then
    begin
      lRelevancyViewNavBar := TRelevancyViewNavBar.Create(FRelevancyNavBar);
      lReloadRelevanciesMessage := TReloadRelevanciesMessage.Create(lRelevancyViewNavBar);
      try
        CurrentFunc.Context.SendMessage(lReloadRelevanciesMessage);
      finally
        lReloadRelevanciesMessage.Free;
      end;
    end;
  end;

  ShowRelevancyNavBar;
end;
回复 支持 反对

使用道具 举报

发表于 2008-1-9 10:03:53 | 显示全部楼层
最初由 atiger 发布
[B]这样把,楼主,你把监控打开,然后分别 直接运行这个功能 和 从系统初始化打开这个功能

然后分析Studio.exe所在目录的MonitorLog.sqb这个文件,通过SystemMonitor.exe ?.

以下省略...... [/B]


该用户发言被屏蔽
回复 支持 反对

使用道具 举报

发表于 2008-1-9 10:07:48 | 显示全部楼层
打开监控,开发端的config.xml中
<SystemMonitor MonitorEnable="False"
把它设成true,就可以了
回复 支持 反对

使用道具 举报

发表于 2008-1-9 10:10:50 | 显示全部楼层
最初由 zfang 发布
[B]打开监控,开发端的config.xml中
<SystemMonitor MonitorEnable="False"
把它设成true,就可以了 [/B]


该用户发言被屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-5 01:58 , Processed in 0.045013 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表