上次说到,javascript脚本到底应该放在哪里?用什么用处?

以下2点:

  1. 在Html、Body部分中的JS会在页面加载的时候执行。即-用户触发一个事件的时候执行的脚本。eg:onload事件...
  2. 在Html、Head部分中的JS会在被调用的时候执行。即-常被用来生成页面的内容。

总而言之:将Javascript标识放置<head>...</head>在头部中间,此时,*.js文件的提前调用;也就是说代码放在<head>区域载入的时候,就同时载入了代码,你再<body>区域调用时不需要在加载代码,速度提高了,当运行很大很复杂的程序时,就可以看出了。

墨水多了,总是想一股脑倒出来。镇定一下情绪与思路,还是想想,慢慢来呗...

性能篇之-管理内存

先小白一下,一说到内存,这里说的是堆内存。话说什么是堆内存?对了,应该这样解释一下子,先说一下计算机的内存分配方式:

一、内存分配方式

1、全局变量和静态变量(static变量),是由编译器自动分配和释放的,初始化的全局变量和静态变量放在同一块内存区中,未初始化的全局变量和静态变量则放在相邻的另外一块内存区中。

2、栈,是由编译器自动分配和释放的,主要是函数体的地址,参数和局部变量,静态变量不包含其中,操作方式类似于数据结构中的栈。

3、堆,是由程序员手动完成申请和释放的,像malloc和new,程序员没有手动释放的话,当程序结束时由系统释放没有释放的空间,其实现方式与数据结构中的堆完全不同,此时的堆的实现方式有些类似于数据结构中的链表。

4、程序代码区,用于存放程序的二进制代码的空间。

5、文字常量区,像常量字符串等存放在这里,程序结束后由系统释放。

综上:以堆的形式所呈现或者进行分配的内存的方式简称堆内存(自己表述,不喜勿喷)

总所周知;chrome浏览器的V8引擎意气风发,大有气吞山河之势。在V8中所有的Javascript对象都是由『堆』的进行内存分配工作的,我们声明变量时,V8就会在堆内存中分配一部分给变量,如果不够怎么办,继续问堆内存要啊,这样,V8就会继续分配内存,直到达到内存上限。普及一下,V8的堆内存的大小上限,64位操作系统的是1464MB,约1.4GB,然后32位操作系统的上限是732MB,约合0.7GB.相形见绌了吧!

说到正题,管理内存之-解除引用→适用于大多数全局变量和全局对象的属性,局部变量会在他们离开执行环境时自动被解除引用。

说那么多还不如举个例子,eg:

function creatP(name){
var localP = new Object();
localP.name = name;
return localP;
}
var globalP = createP("Nick");
// 手工解除globalP的引用
globalP = null;

  注:解除引用的真正作用是让值脱离执行环境,以便垃圾回收器下次运行时将其回收。

顺便说一下,JS基本数据类型的变量存放的是基本数据类型的实际值;而引用类型的变量保存对它的引用,即指针。

基本数据类型(SBUNN):String、Boolean、Undefined、Number、Null;

引用数据类型(FOA):Function、Object、Array

浅谈javascript性能-管理内存的更多相关文章

  1. 浅谈JavaScript中的内存管理

    一门语言的内存存储方式是我们学习他必须要了解的,接下来让我浅谈一下自己对他的认识. 首先说,JavaScript中的变量包含两种两种类型: 1)值类型或基本类型:undefined.null.numb ...

  2. 浅谈JavaScript性能

    最近在JavaScript性能方面有所感悟,把我的经验分给大家: 说到JavaScript,就不得不说它的代码的运行速度—— 在我初学JavaScript的时候,只是觉得它是一个很强大的脚本.渐渐的, ...

  3. 浅谈objective—C管理内存

    这段时间被导师催着论文,调试各种BUg,也是醉了,发现很大程度上,内存出错,栈溢出,各种悲剧.那么今天就和大家一起对OC的内存管理来个探微吧.Objective-C使用一个保留计数记录了我们所创建的所 ...

  4. 浅谈javascript的原型及原型链

    浅谈javascript的原型及原型链 这里,我们列出原型的几个概念,如下: prototype属性 [[prototype]] __proto__ prototype属性 只要创建了一个函数,就会为 ...

  5. 浅谈javascript函数节流

    浅谈javascript函数节流 什么是函数节流? 函数节流简单的来说就是不想让该函数在很短的时间内连续被调用,比如我们最常见的是窗口缩放的时候,经常会执行一些其他的操作函数,比如发一个ajax请求等 ...

  6. 浅谈java性能分析

    浅谈java性能分析,效能分析 在老师强烈的要求下做了效能分析,对上次写过的词频统计的程序进行分析以及改进. 对于效能分析:我个人很浅显的认为就是程序的运行效率,代码的执行效率等等. java做性能测 ...

  7. 浅谈JavaScript中的闭包

    浅谈JavaScript中的闭包 在JavaScript中,闭包是指这样一个函数:它有权访问另一个函数作用域中的变量. 创建一个闭包的常用的方式:在一个函数内部创建另一个函数. 比如: functio ...

  8. 浅谈DOM性能考虑

    浅谈DOM性能考虑 很多人都会忽视脚本对Web应用整体性能的影响.为保证应用的流畅运行,在为文档编写和应用脚本时,需要注意一些问题.一.尽量减少访问DOM和尽量减少标记    访问DOM的方式对脚本性 ...

  9. 浅谈JavaScript浮点数及其运算

    原文:浅谈JavaScript浮点数及其运算     JavaScript 只有一种数字类型 Number,而且在Javascript中所有的数字都是以IEEE-754标准格式表示的.浮点数的精度问题 ...

随机推荐

  1. 无显示仍然发挥树莓派——VNCserver设定

    谁说没有显示器就不能玩树莓派的图形界面了.不要忘了VNCserver哦! VNC(Virtual Network Computing)属于一种网络显示系统,也就是说它能将完整的窗体界面通过网络传输到还 ...

  2. Oracle Net Listener Parameters (listener.ora)(转)

    12/20 7 Oracle Net Listener Parameters (listener.ora) This chapter provides a complete listing of th ...

  3. head first c&lt;11&gt;在根据网络编程

    博文可以在一个大的网络通信实现,但是,一个人只能起到,我们能够给每个clientfork()子进程,实现诸多的服务. 方法: client连到server以后,server启动一个新创建的套接字对话. ...

  4. HDU 3832 Earth Hour(最短路)

    题目地址:HDU 3832 这个题的这种方法我无法给出证明. 我当时这个灵感出来的时候是想的是要想覆盖的点最少,那就要尽量反复利用这些点,然后要有两个之间是通过还有一个点间接连接的,这样会充分利用那些 ...

  5. hibernate 多对多 最佳实践

    首先 看看我们 ER 画画 :盖  一对一 .一对多 .多对多 的关系 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvem91dG9uZ3l1YW4=/fo ...

  6. mapxtreme C# 完美车辆动态轨迹展示

    演示程序请在 http://pan.baidu.com/s/1jG9gKMM#dir/path=%2F%E4%BA%A7%E5%93%81%2FDemos 找 Trajectory.rar 轨迹回放功 ...

  7. java类和对象之间的差

    java类和对象之间的差别是一个普遍的问题,刚开始学习java当它来到与类和对象接触.今天就来总结一下它们之间的差异. 先说说class和object差异.事实上,词:object是全部class的父 ...

  8. 连载:面向对象的葵花宝典:思考、技巧与实践(39) - 设计原则 vs 设计模式

    它的设计原则,和设计模式,是否该用它? ============================================================================= 在& ...

  9. SSH骨架Struts(1)——Struts执行过程

    收养Struts骨架Web应用,以举例的方式介绍的基本流程. 一.实例 Login.jsp,进行系统登录的页面 <form action="login.do" method= ...

  10. wikioi 1034 家 实时动态的网络流量(费用流)

    因为随着时间的推移.网络侧变得,因此,常见的网络流量也解决不了这个问题,.如果T毕竟运输时间. 为此.我们可以基于时间分割点,所有的点将被分割为T点. 对于每一个点,下一次甚至一个容量为本人INF边缘 ...