草庐IT

javascript - 如何使用 javascript 查找 chrome 选项卡使用的内存

coder 2024-05-10 原文

在加载大量数据的 Web 应用程序中,当它超过特定限制时会崩溃。所以我想找到使用 javascript 的 chrome 选项卡使用的内存,即通过代码来防止此类问题。

最佳答案

这里来自source code of the chrome :

// Make the values returned to window.performance.memory more granular and more up to date in shared worker. Without this flag, the memory information is still available, but it is bucketized and updated less frequently. This flag also applys to workers. const char kEnablePreciseMemoryInfo[] = "enable-precise-memory-info";

因此您需要 --enable-precise-memory-info 标志以获得更动态和准确的结果。出于安全原因,默认情况下,谷歌浏览器不会通过 performance.memory 提供准确的信息。你可以在这里看到 https://github.com/paulirish/memory-stats.js/tree/master监控内存的好方法。但这不是一个好的解决方案,即使您可以控制用户运行“站点”的方式。您无法确定 Chrome 会在何处崩溃或数据的准确性如何。

第一个解决方案是制作一个全局 factory pattern它计算所有新对象并为每个对象都有一些预定义的大小,当大小达到一定数量时,您可以提醒用户。在这种情况下要小心,您不会计算绑定(bind)事件。您可以尝试在同一个工厂(或更好的另一个工厂)中添加事件,但我不知道这会有多准确。

第二种解决方案,更好的解决方案是this example .一个很好的例子,有 500,000 条记录,具有快速响应和低内存。如何?很简单,只需加载用户看到的数据即可。当用户滚动时,它会找到正确的数据而无需加载所有其余数据。这是你可以用需要很多内存的东西来做的事情。

关于javascript - 如何使用 javascript 查找 chrome 选项卡使用的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36382135/

有关javascript - 如何使用 javascript 查找 chrome 选项卡使用的内存的更多相关文章

  1. c# - 如何在不读取文件的情况下获取行数 - 2

    有没有办法在不读取文件内容或读取文件结束和计数++的情况下获取大文本文件中的行数。也许有一些文件属性,但根本找不到。因为我可能在某些情况下应该获取总行数并将其与当前行进行比较以显示百分比,并且仅对于百分比显示,先阅读所有内容可能比再次阅读以显示原始文本更愚蠢在用户处。最佳 最佳答案 没有。你必须阅读文件。如果你想快速找到它而不需要计数,可以考虑将它存储在文件的开头或者在编写文件时将它放在一个单独的文件中。请注意,您可以流式传输文件,而且速度出奇地快:intcount=File.ReadLines(path).Count();Beca

  2. c# - 使用 linq to sql 获取最后一个元素 - 2

    我有这个:varresult=(fromtinMyDCwheret.UserID==6orderbyt.UpdateTimeselectt.ID).Last();基本上,我使用的是Linq-to-Sql,它不支持.Last运算符。我可以检索用户的所有记录,然后使用linqtoobjects来获取我的值,但我想知道如何使用linq-to-sql执行此操作并仅返回一条记录。感谢您的建议。 最佳答案 只需按降序排列并使用.First()代替:varresult=(fromtinMyDCwheret.UserID==6orderbyt.Up

  3. c# - 如何将 TypeCode 转换为实际类型? - 2

    在下面的代码中,我得到了colType,它是该类型的代码编号。但是我如何将该数字转换为实际类型呢?谢谢!!for(intj=0;j<dvColumns.Count;j++){//Getthenameofthecolumn.drvCols=dvColumns[j];colName=drvCols.Row.ItemArray[3].ToString();//Getcolumnsdatatypecodeandsaveitoff.colType=Convert.ToInt32(drvCols.Row.ItemArray[11]);} 最佳答案

  4. c# - Icecast 2 : protocol description, 使用 C# 流式传输到它 - 2

    我需要编写一个Icecast2客户端,它能够将音频从计算机(mp3文件、声卡录音等)流式传输到服务器。我决定用C#编写这样一个客户端。两个问题:1)了解我可能/应该/必须用来在C#中无缝处理流式音频(当然是通过网络流式传输)的通用指南(最佳实践,也许是技巧)将非常有用。一些关于通过TCP/IP流式传输的一般技术文档,特别是ICY,关于应用程序整体架构的建议和注释将非常感激。2)是否有关于Icecast2流媒体协议(protocol)的任何好的文档?我在Icecast的官方网站上找不到这些文档。我不想直接从它的源代码中提取协议(protocol)描述。如果协议(protocol)真的简单

  5. c# - : "exception was thrown by the target of invocation" C#如何解决 - 2

    C#每次我运行我的程序时,我都会得到这个异常:但是当我在Debug模式下运行时,没有异常,程序运行正常,我该怎么办?注意:我没有在项目的任何地方使用invoke()编辑:好的,这是在详细信息中找到的代码:如果有人知道如何使用protoBuff,并且知道这个问题....**************ExceptionText**************System.Reflection.TargetInvocationException:Exceptionhasbeenthrownbythetargetofaninvocation.--->ProtoBuf.ProtoExceptio

  6. c# - 我们在哪里使用 Debug/Trace 语句 - 2

    我使用C#(使用VSIDE)进行开发。我对调试/跟踪语句感到困惑。我们在哪里以及为什么使用这些语句?我经常在其他开发人员的源代码中看到这些。谁能指点一下? 最佳答案 Debug语句仅出现在Debug版本中。Trace语句存在于调试和发布版本中。为了调试或检查,您可以将Debug和Trace语句放在要输出某些值的地方。这篇MS支持文章可能会引起您的兴趣:HowtotraceanddebuginVisualC#TheTraceclassroutesmessagestolisteners:classesthataredesignedtoa

  7. c# - 如何将 UTC DateTimeOffset 转换为使用系统时区的 DateTime - 2

    Quartz.net提供了获取下一次触发事件的下一次时间的方法:http://quartznet.sourceforge.net/apidoc/1.0/html/html/cc03bb79-c0c4-6d84-3d05-a17f59727c98.htm文档声称此Trigger.GetNextFireTimeUtc()方法返回一个DateTime?但它实际上返回一个DateTimeOffset?。我真的不明白DateTimeOffset的用途或为什么此函数返回一个而不是常规的DateTime。我想要的只是下一次触发器运行但在我的时区内。我做了这个trigger.GetNextFireTi

  8. c# - 为什么我不能使用 Lambda 表达式取消订阅事件? - 2

    本文指出YouCan’tUnsubscribefromanEventUsingaLambdaExpression.例如您可以通过以下方式订阅:d.Barked+=(s,e)=>Console.WriteLine("Bark:{0}",e);但是你不能这样取消订阅:d.Barked-=(s,e)=>Console.WriteLine("Bark:{0}",e);为什么?这与取消订阅委托(delegate)有什么区别,例如EventHandler<string>handler=(s,e)=>Console.WriteLine(&

  9. c# - 使用 Moq 模拟 Delegate.Invoke() 在 LINQ 中抛出 InvalidCast 异常 - 2

    假设我有IService界面:publicinterfaceIService{stringName{get;set;}}还有一个委托(delegate)Func<IService>返回此接口(interface)。在我的单元测试中,我想模拟委托(delegate)的Invoke()像这样使用Moq的方法:[TestMethod]publicvoidUnitTest(){varmockService=newMock<IService>();varmockDelegate=newMock<Func<IService>>();mockDeleg

  10. c# - 如何使用 LINQ 从 DataTable 中删除行? - 2

    我有以下代码从DataTable中删除行:varrows=dTable.Select("col1='ali'");foreach(varrowinrows)row.Delete();上面的代码工作正常。如何将此代码转换为LINQ? 最佳答案 LINQ不用于删除或修改-它用于查询数据。使用LINQ,您可以选择应删除的数据,然后手动删除这些数据(例如,在foreach循环中或使用ForEach列表扩展):varquery=dTable.AsEnumerable().Where(r=>r.Field&

随机推荐

  1. c# - 字符串构造器 - 2

    我们可以说,stringmyString="Hello";它“神奇地”构造了一个包含该值的新字符串对象。为什么不能将类似的“无构造”方法用于从我们在代码中定义的类创建的对象?VS对string的“魔力”是什么?而对于enum呢?我从未见过有关其工作原理的解释。 最佳答案 基本上,它是C#语言规范的一部分:有字符串文字、数字文字、字rune字和bool文字的语法,但仅此而已。编译器使用这些文字来生成IL,对于大多数,“特定类型的常量”都有合适的指令,因此直接表示。decimal是一个异常(exception),它不是C

  2. c# - 长整数可以在 32 位系统上工作吗? - 2

    如果我理解正确的话,一个int变量正在保存32位,将它限制在-20亿到20亿之间。但是,如果我使用长变量,它将保存为64位,从而可以存储更多数字。我使用的是64位系统,但如果我以64位存储数据,我的代码能否在32位系统上正常运行?谢谢! 最佳答案 你不用担心这个。long值将存储在2个内存地址中。Int64/long将始终为64位,而Int32/int将始终为32位。有一些影响(关于内存空间和性能),但最值得注意的可能是写/读操作在32位系统上不是原子的,但你不应该期望它们无论如何都是原子的,因为c#规范不提供此类保证。无论哪种方式

  3. c# - 使用 Moq 模拟 Delegate.Invoke() 在 LINQ 中抛出 InvalidCast 异常 - 2

    假设我有IService界面:publicinterfaceIService{stringName{get;set;}}还有一个委托(delegate)Func<IService>返回此接口(interface)。在我的单元测试中,我想模拟委托(delegate)的Invoke()像这样使用Moq的方法:[TestMethod]publicvoidUnitTest(){varmockService=newMock<IService>();varmockDelegate=newMock<Func<IService>>();mockDeleg

  4. c# - 无法找到请求的 .Net Framework 数据提供程序。它可能没有安装 - 2

    大家好,这是我第一次在远程服务器上发布使用EntityFramework开发的项目。这些页面工作正常,但是当我尝试访问我的保留区域时,读取数据库时,我收到此错误Unabletofindtherequested.NetFrameworkDataProvider.Itmaynotbeinstalled.描述:在执行当前网络请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。异常详细信息:System.ArgumentException:无法找到请求的.NetFramework数据提供程序。它可能未安装。来源错误:在执行当前Web请求期间生成了未处理的异常。可

  5. c# - 将 Datagrid.SelectedItems 集合转换到 List<T> - 2

    我有这样的课publicclassFoo{publicstringprop1{get;set;}publicstringprop2{get;set;}}还有一个带有List<Foo>的View模型,此列表用作Bind一个DataGrid,然后在代码隐藏中我需要获取Datagrid.SelectedItems收集并将其转换为List<Foo>我尝试过的事情:List<Foo>SelectedItemsList=(List<Foo>)DataGrid.SelectedItems;//ORobjectp=DataGrid.SelectedIte

  6. c# - 如何使用 LINQ 从 DataTable 中删除行? - 2

    我有以下代码从DataTable中删除行:varrows=dTable.Select("col1='ali'");foreach(varrowinrows)row.Delete();上面的代码工作正常。如何将此代码转换为LINQ? 最佳答案 LINQ不用于删除或修改-它用于查询数据。使用LINQ,您可以选择应删除的数据,然后手动删除这些数据(例如,在foreach循环中或使用ForEach列表扩展):varquery=dTable.AsEnumerable().Where(r=>r.Field&

  7. C# SQLite-net 定义多列唯一 - 2

    我看到了对SQLite-net中支持多列唯一约束的更改的引用。我知道它可以直接用sqlite完成,但是我更喜欢使用sqlite-net方法来做事。什么是做多列唯一的语法。Single是希望唯一的列上方的[Unique]。 最佳答案 我通过查看项目中包含的实际单元测试找到了答案。它基于在索引属性上使用命名参数。例如:[Indexed(Name="ListingID",Order=2,Unique=true)]publicstringListingNumber{get;set;}[Indexed(Name="Li

  8. c# - List.Insert 有任何性能损失吗? - 2

    给定一个列表:List<object>SomeList=newList<object>();正在做:SomeList.Insert(i,val);对比SomeList.Add(val);有任何性能损失吗?如果是,如何取决于:-i-插入索引-SomeList.Count-列表的大小 最佳答案 TheListclassisthegenericequivalentoftheArrayListclass.ItimplementstheIListgenericinterfaceusinganarraywhosesize

  9. c# - 提高使用 .NET 枚举文件和文件夹的性能 - 2

    我有一个包含数千个文件夹的基本目录。在这些文件夹中,可以有1到20个子文件夹,其中包含1到10个文件。我想删除所有超过60天的文件。我使用下面的代码来获取我必须删除的文件列表:DirectoryInfodirInfo=newDirectoryInfo(myBaseDirectory);FileInfo[]oldFiles=dirInfo.GetFiles("*.*",SearchOption.AllDirectories).Where(t=>t.CreationTime<DateTime.Now.AddDays(-60)).ToArray();但是我让它运行

  10. c# - 智能字符串比较 - 2

    我正在寻找一个允许对两个字符串进行智能比较的库/类。充其量它会给出两个字符串相似程度的百分比。我正在比较记录在不同存储库中的公司名称、地址,因此名称中有很多拼写错误或不一致。要比较的示例字符串:"GoodCompanyLtd."vs."GoodCompany""BakerStreet2"vs."BakerStr.2"如果我得到相似百分比的结果,那么这可以作为此类数据智能合并的输入。你知道有什么好的库可以进行这种智能字符串比较吗? 最佳答案 Levenshtein在这种情