我是JS领域的新手,我想知道这两种方法中哪一种效率更高,并且消耗的内存更少?变量queryParams
和返回值都会在第一种方法中消耗内存吗?
在JS中检查内存消耗的一些好的工具/方式是什么?
方法1
getQueryParamsForPreviousUrl(): string {
let queryParams: string = '';
if (this._currentUrl) {
const index = this._currentUrl.indexOf('?');
if (index !== -1) {
queryParams = this._currentUrl.slice(index);
}
}
return queryParams;
}
方法2
getQueryParamsForPreviousUrl(): string {
if (this._currentUrl) {
const index = this._currentUrl.indexOf('?');
if (index !== -1) {
return= this._currentUrl.slice(index);
}
}
return '';
}
答案 0 :(得分:3)
Q:第一种方法中的变量queryParams
和返回的值是否都会占用内存?
A: queryParams
肯定会消耗一些内存。这里将发生的是,当您的代码运行方法getQueryParamsForPreviousUrl(...)
时,该变量将被声明并存储在进程的stack
内存中。
代码退出后,queryParams
将被标记为“有资格进行垃圾收集”,然后将来某个时候,消耗的内存将由垃圾收集器释放。