如何计算在gwt中加载模块所需的时间?

时间:2014-04-22 09:56:36

标签: gwt

我正在使用自定义gridview小部件和分配给它的大量数据(比如说1000行)。我知道它需要更多时间。我想知道加载网格需要多少时间。< / p>

<!doctype html>
<html>
  <head>
  <link rel="stylesheet" href="Custom.css">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>CustomWidget</title>
    <script type="text/javascript" language="javascript" src="mywidget/mywidget.nocache.js">
    function startTime()
{
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
// add a zero in front of numbers<10
m=checkTime(m);
s=checkTime(s);
document.getElementById('txt').innerHTML=h+":"+m+":"+s;
t=setTimeout(function(){startTime()},500);
}

function checkTime(i)
{
if (i<10)
  {
  i="0" + i;
  }
return i;
}
    </script>
  </head>

  <body onload="startTime()">
    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
<div id="txt"></div>
  </body>
</html>

但是无法显示时间......以及作为单个html页面执行时的工作情况。

3 个答案:

答案 0 :(得分:2)

另外两种方式与@Braj一起回答

1.使用Speed Tracer,您可以更好地了解应用程序的时间花费。这包括由以下原因引起的问题:

  • Javascript解析和执行
  • 布局
  • CSS样式重新计算和选择器匹配
  • DOM事件处理
  • 网络资源加载
  • 计时器触发
  • XMLHttpRequest回调
  • 绘画

暂停此链接Speed Tracer和Crome(点击免费),仅适用于Crome

2.您可以在任何网页中实时编辑,调试和监控CSS,HTML和JavaScript 通过这个,我们可以得到每个函数花费的时间,调用的次数和总时间的百分比

但它只适用于火狐。

请点击此链接FireBug。点击控制台,然后启用个人资料,查看每个功能的效果。

有时您可能会获得模糊的函数名称。要避免这种project>Google>GWT Compile>选择输出样式为Pretty

答案 1 :(得分:1)

试试这个

要遵循的步骤:

  • 在下载nocache.js
  • 之前创建一个隐藏的div,其中包含有关当前时间的信息
  • 加载nocache.js后,它会调用入口点类的EntryPoint#onModuleLoad()方法。
  • 比较花时间的时间

HTML / JSP:

<body>
    <div id="timeinfo" style="visibility: hidden;"></div>

    <script type="text/javascript">
        var today = new Date();

        document.getElementById("timeinfo").innerHTML = today.getTime();
    </script>

    <script type="text/javascript" src="mywidget/mywidget.nocache.js"></script>
</body>

入口点类:

public class MyWidget implements EntryPoint {

    public void onModuleLoad() {
        RootPanel timeinfo = RootPanel.get("timeinfo");

        long startTime = Long.valueOf(timeinfo.getElement().getInnerHTML());
        long endTime = System.currentTimeMillis();
        System.out.println(new Date(startTime));
        System.out.println(new Date(endTime));
        System.out.println("Total time taken=" + (endTime - startTime) + " ms.");

        RootPanel.getBodyElement().removeChild(timeinfo.getElement());
        ...
    }
}

输出:

    Tue Apr 22 16:55:49 IST 2014
    Tue Apr 22 16:56:03 IST 2014
    Total time taken=14479 ms.

答案 2 :(得分:1)

在浏览器中打开控制台。单击“网络”选项卡。重新加载页面。看看加载每个资源需要多长时间。