Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';指定给typescript类的每个对象的相同常量字符串的内存命中率是多少?_Typescript - Fatal编程技术网

什么';指定给typescript类的每个对象的相同常量字符串的内存命中率是多少?

什么';指定给typescript类的每个对象的相同常量字符串的内存命中率是多少?,typescript,Typescript,如果我们在typescript中创建的类的每个对象中都有一个className成员变量,这将是一个巨大的帮助。这将使安全地识别对象的类变得轻而易举 它必须是一个成员变量(而不是ES5 get/set),因为我们将这些对象传递给web worker或从web worker传递这些对象,因此只有数据会被传递 我们将在每个类中将名称的字符串声明为static,并分配该static。因此,内存命中率应该是每个实例化对象多一个指针 除了内存之外,由于每个对象中都有额外的指针,这样做还有什么坏处吗?根据字符

如果我们在typescript中创建的类的每个对象中都有一个className成员变量,这将是一个巨大的帮助。这将使安全地识别对象的类变得轻而易举

它必须是一个成员变量(而不是ES5 get/set),因为我们将这些对象传递给web worker或从web worker传递这些对象,因此只有数据会被传递

我们将在每个类中将名称的字符串声明为static,并分配该static。因此,内存命中率应该是每个实例化对象多一个指针


除了内存之外,由于每个对象中都有额外的指针,这样做还有什么坏处吗?

根据字符串的值在单个内存位置共享字符串,即相同的值会使您获得完全相同的内存位置,称为字符串插入

好的浏览器(chrome;))确实实现了字符串插入。下面是一个字符串实习测试,测试结果适用于各种浏览器:


在没有字符串插入的情况下,您将获得一个新的内存地址+分配。内存的数量取决于您的使用情况,但如果您想知道,字符串分配在JavaScript中并不是一个特别缓慢的过程。这与say C#中的相同(顺便说一句,它确实有实习生……我们现在正在讨论需要分配的不同字符串)。

为什么不把它放在原型上呢?然后只有一个指针,并且保证只有字符串的一个实例。@RyanCavanaugh问题是,当我们向web worker发布消息/形成web worker时,我们需要传递这个指针,它只传递数据,而不传递原型。