zoukankan      html  css  js  c++  java
  • Remoting首次用时偏长问题

    先说我遇到的问题,我需要访问多个服务器的一个相同的Remoting方法,根据方法返回的结果决定优先使用某个服务器。

    var _remoteFacade = Activator.GetObject(typeof(IAppCommonFacade), "tcp://" + ServerIp + ":10002/IAppCommonFacade") as IAppCommonFacade;
    TimeSpan sp = DateTime.Now - start;
                    try
                    {
                        writeLog(ServerIp, "DetectServerStatus start...");
                        result = _remoteFacade.DetectServerStatus();
                        TimeSpan sp1 = DateTime.Now - start;
                        writeLog(ServerIp, string.Format("DetectServerStatus={0},获取接口用时{1},调用方法用时{2}", result,sp.TotalMilliseconds,sp1.TotalMilliseconds));
                        isCompleted = true;
                    }
                    catch
                    {                    
                        writeLog(ServerIp, ",DetectServerStatus error.");
                    }
    

     于是我发现一个现象,第一个被调用的服务器用时大大超出其他服务器。强调一下,这与服务器IP没关系,以下日志22服务器用时多,如果95和22的先后换一个,那用时多的就是95.

    [2013-09-09 08:53:31]:priorityServerChecker 192.168.1.22: DetectServerStatus start...
    [2013-09-09 08:53:31]:call DetectServerStatus used 15.625 毫秒 .it's at tcp://192.168.1.22:10002/IAppCommonFacade 
    [2013-09-09 08:53:31]:priorityServerChecker 192.168.1.22: DetectServerStatus=0,获取接口用时0,调用方法用时315.625
    [2013-09-09 08:53:31]:check server 192.168.1.22,完成检测,Reslut=0
    [2013-09-09 08:53:31]:priorityServerChecker 192.168.1.95: DetectServerStatus start...
    [2013-09-09 08:53:31]:call DetectServerStatus used 0 毫秒 .it's at tcp://192.168.1.95:10002/IAppCommonFacade 
    [2013-09-09 08:53:31]:priorityServerChecker 192.168.1.95: DetectServerStatus=0,获取接口用时0,调用方法用时15.625
    

     我想到了是不是与dotnet的编译用时有关。因为是登录的界面,所以这半秒的时间是不能放过的,一定要消灭它。于是在界面Load时,在检测前增加一个后台线程,这里我称其为“线程B”,在“线程B”先调用一次第一个服务器。上面的第一次调用的问题确实解决了。我想确认一下自已的想法,于是在“线程B”里放日志检查用时,结果却让人摸不着头脑

    “线程B”里用时:[2013-09-09 09:48:34]:check server 192.168.1.95,prepareCheckJob完成,用时31.25

    检测线程用法:[2013-09-09 09:49:32]:priorityServerChecker 192.168.1.95: DetectServerStatus=0,用时406.25

    难道这与ManualResetEvent有关?

    2018-11-24补充
    https://www.cnblogs.com/francis-gao/p/4912575.html

    这里提出修改app.config

  • 相关阅读:
    为什么非全站升级HTTPS不可?
    使用JSON实现分页
    Git常用命令
    chrome浏览器tab页内存占用变大,网站变慢为哪般?
    我们前端跟后端是怎么合作的
    关于响应式布局
    AngularJS(1)
    关于php语言的使用!
    你必须收藏的Github技巧
    CSS3 动画
  • 原文地址:https://www.cnblogs.com/kevin-Y/p/3309234.html
Copyright © 2011-2022 走看看