[转载]原来jQuery的性能是如此差的

原文地址:http://www.cnblogs.com/rubylouvre/archive/2010/02/26/1673098.html

结论是来自测试框架taskspeed的结果。jQuery每次升级都会提到某某方法性能比原来提升了多少多少,里面都会提到这个框架。这结论可能会让许多人大跌眼镜吧,不过也不奇怪,因为中国是美工主导前台,那些人的英语水平都比较一般,很少能主动到外国博客了解最前沿最尖端的javascript技术。另,jQuery的易上手也很容易给人一个错觉,认为它什么是好的,既然它现在被捧得这么红。不过被网络捧红的人有时不单单是包建斌(烧饼帅哥),也有可能是芙蓉姐姐。现在特意声明一下,jQuery肯定不是后者,各位jQuery死忠请稍安勿燥!

现在简单介绍一下各大javascript框架,各位就知性能一向不是jQuery的得意之处。总归来说,jQuery是设计师的javascript框架,它的CSS选择器对设计师来说是非常亲切。Prototype.js则是Rubyer的javascript框架,它与著名rails捆绑在一起,另,它也是早些年最受青睐的javascript框架,现在它的影响力还在于jQuery之上。学Python的人可以选择MochiKit,同为十大框架,不过它好像要借助dojo的包机制。MochiKit里面有一个叫Deferred的类,被日本高手cho45发展为一个异步框架JSDeferred,天天被人邀请做演讲。不过,国内被墙得厉害,加之国人对日本人的仇视与偏见,知之人甚少。dojo的后台非常厉害,什么AOL,IBM,SUN,java的三大框架之一Struts就是用它的。作为最企事业化的产物,它的性能当然是不容忽视,不过它的野心太大了,除了拥有一套完整的UI组件外,还向图形,本地储存伸出魔爪,导致战线过长,发展缓慢。qooxdoo把自己定义为GUI类库,国内估计也很少人认识它,它拥有最优质的插件。mootools是现在最被看好的类库之一,优雅的OO机制与靠大量函数堆砌在一起的jQuery站于两个巅峰。此外还有YUI与Ext,雅虎以前是巨有钱,有线可以招许多聪明人弄一些好东西。YUI就是其他的产物之一,但聪明人太多了,互相制肘,于是有人跑出来搞了Ext。好了,介绍就到此为止。我们可以发现jQuery是个非常特别的框架,首先它没有什么后台,其次它把自己定义为一个轻量级的类库。轻量级有级量级的好处,重量级有重量级的好处,怎么大家都如此怕重量级呢?总有人问这样废问题——“这个库大不大?”怕什么啊!再大也没有美工砌的那几张图片大!由于jQuery不搞UI(官网那个UI只是乌合之众),许多性能问题没有突现出来。因为一涉及到界面,就意思着要创建数十个或上百个DOM元素,性能的问题就被放大了。我想,看过jQuery源码的人都好头晕,那些方法互相调用得太厉害,而且为了使用已定义的jQuery方法,这些方法会再次把分解得来的DOM元素再包装成jQuery对象,巨吃内存。另,整个库放在一个自动执行函数(闭包),另闭包里面还存在闭包,闭包意味着是一重作用域(在主流类库中,好像就jQuery这样做吧)。再者,一个方法同时作为写方法与读方法,也让它在性能比较很吃亏(一个方法当许多方法来用,导致函数体很长,函数体长意味着逻辑复杂,判定多,调用外围作用域的函数的机会多,使用循环的机会多,这些都是要消耗时间与内存的)……

最后我们看结果吧:

在所有浏览器中性能最好的是qooxdoo 0.8.2。

在各个浏览器的比较结果:

最后说一句,流行的东西不一定是最好的。jQuery最大的卖点是好用,易上瘾,就像鸦片一样。或者jQuery的易用性和其他庞大的插件能一时帮你解决了问题,但千万别忽略了学习javascript与DOM的基础API与其他类库。

 

转载于:https://www.cnblogs.com/mezero/archive/2011/12/03/2274747.html

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的异,常见的损失函数包括均方误(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值