0

在 Chrome 中为我的模型获取元数据似乎非常慢,但在 IE 中却很快。

我的 dbcontext 包含大约 35 个具有大量导航属性的实体,我添加的每个实体都会增加延迟。目前延迟大约是 20 秒,在查询返回原始元数据之后开始,并且完全是 CPU 正在大量工作,内存使用保持稳定。我有一个 i7 处理器和充足的内存。

我知道 javascript 引擎在这两个浏览器中的配置方式存在差异,chrome javascript JIT 编译器针对浮点操作进行了优化(这就是为什么 webgl 图形在 chrome 中比 IE 快一千倍)——这可能是有对 fetchMetaData 必须做的工作有影响吗?

有没有其他人注意到这种缓慢?会不会是我的人际关系出了问题?一旦延迟结束,一切正常,所以我怀疑关系可能是一个问题。

4

2 回答 2

1

找到问题和解决方案!

感谢您抽出宝贵时间查看此问题,在您回复后,我决定将整个项目简化为可以重现问题并寻找任何干扰的基础。

这是一个较旧的项目,我在其中实施了 Breeze。该项目使用标准 jquery post/get 方法从 MVC 获取数据,并且由于在从 MVC 发布和接收 json 数据时日期和时间一直是个问题,所以我在启动脚本中有以下代码:

    // Add datafilter to jQuery ajax calls to translate dates
$.ajaxSettings.dataFilter = function (data, type) {
    //if (type === 'json') {
    // convert things that look like Dates into a UTC Date string and completely replace them.
    data = data.replace(/(.*?")(\\\/Date\([0-9\-]+\)\\\/)(")/g,
                    function (fullMatch, $1, $2, $3) {
                        try {
                            return $1 + new Date(parseInt($2.substr(7))) + $3;
                        }
                        catch (e) { }
                        // something miserable happened, just return the original string
                        return $1 + $2 + $3;
                    });
    //}
    return data;
};

删除此代码后(因为微风确实日期正确),一切正常。这种类型的代码在其他必须正确处理日期的旧项目中可能很常见,我知道我从WiredPrairie得到了上面的代码片段,我相信其他人也会遇到这个问题。

于 2013-02-09T21:23:16.547 回答
0

德米特里,我无法重现这一点,所以我想知道是否还有其他问题。你也试过火狐吗?

于 2013-02-09T03:20:43.173 回答