首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JavaScript上测试UIWebView的10MB限制?

如何在JavaScript上测试UIWebView的10MB限制?
EN

Stack Overflow用户
提问于 2013-09-10 10:51:25
回答 1查看 849关注 0票数 0

我正在尝试测试UIWebView对Javascript内存分配的10MB限制。这是到目前为止我在模拟器(iOS 5.1)上运行的代码。

代码语言:javascript
复制
int size = 10485760+1024000*10; 
int i = 13;
char *cStr = (char *) malloc(size); // 20MB buffer
char *lcStr = cStr;
lcStr+=i;
strcpy(cStr, "window._x = \'");
for ( ; i < size-4; i++){
    if(i%2){
        *lcStr = ' ';
    }else{
        *lcStr = 'c';
    }
    lcStr++;
}
strcpy(lcStr, "c\';\0");

NSString *longStr = [NSString stringWithCString:cStr encoding:NSASCIIStringEncoding];
// by now 40MB used

//memory usage spikes to 60MB
NSString *result = [self.webView stringByEvaluatingJavaScriptFromString: longStr];

free(cStr);

HTML/JS:

代码语言:javascript
复制
<script type="text/javascript">
    setTimeout(function(){document.getElementById("one").innerText = window._x;},3000);
</script>

我的问题是,上面的代码不会导致UIWebView抛出任何异常,即使JS分配在某一点上明显大于10MB。我已经使用仪器来验证内存使用情况。

整个程序的最终结果是,我在webview中看到屏幕上打印了一串“c”,但没有崩溃。

我做错了什么吗?如何测试这个JS限制?

EN

回答 1

Stack Overflow用户

发布于 2013-09-30 22:18:24

这些限制因设备而异。模拟器不会施加与实际设备相同的限制。如果在iPhone上进行测试,应该会看到一个异常。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18710006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档