因为是 java 程序员写的 javascript
最近 HN 还有个在 ATS, C#, Go, Haskell, OCaml, Python and Rust 中 选了 Ocaml 的。
Ocaml 是最成熟的静态语言之一,支持函数式,OO, 类型推导,模式匹配,代数数据类型. 同样是 ML 系的 F# 其实比 Ocaml 语法更简洁,就是两个问题:函数式 + 非 algo 风格的调用语法在 M$ 程序员中基本接受不了,编译到 .NET 运行时在非 M$ 程序员中也基本接受不了...
不容易啊... 虽然原书写的时候是针对 Ruby 1.7 的,现在很多部分都不一样了...
果断关注。做 computation-bound 的数据处理给力。
假设数据量为 n, 处理的算法复杂度高于 O(n), 例如 O(n^2), 那么用 GPU 是个好选择. 虽然多数人做的都是 O(n) 的 io-bound 处理...
#2 楼 @williamherry 应该是因为数据库存的时间里还有毫秒 query 显示不出来?
如果是 rails, 要写个 xxoo.s.scss
Mon, 30 Sep 2013 12:39:25 CST +08:00
是 ruby 的 DateTime 对象 inspect 的结果
查询时直接给 Time / Date 对象就好
给字符串的话,要符合 iso8601 的格式 (例如 Time.now.iso8601
)
/<div id="content">(.+?)(?:<div id="content_end">|<div id="content_finish">)/i
或者用 Nokogiri
require 'nokogiri'
Nokogiri::HTML(s).css('#content').first.content
大概那个 js 文件被 windows 编辑器处理过,带了 BOM ? 可以这么子检查:
File.binread(那个文件).start_with? "\xFE\xFF"
如果是,用程序去掉前两个字节,保存即可。
用 mongoid 的话应该人比较多一点...
File.join base, relative
, 替换扩展名可以抽出个小方法是怎么绑定的?data-confirm 的话就去掉属性
on
绑的事件,就 off
关掉
bind
绑的事件,就 unbind
关掉
最近还有别的事情做,懒得回复了... 感觉就是在喂巨魔。欢迎发 pull request.
#28 楼 @bhuztez 需要啊,一种情况是对矩阵做非标准操作,例如按条件修改元素。
另一种情况是抽象操作并非最优的,例如
D = A * B * C
按照 numpy 的做法,这里的乘法最终变成调用 CUDA/opencl 的矩阵乘法了,但是中间结果还是要转化成 python 的矩阵。但这两个运算可以放到一起,展开来做 lazy fusion, 中间结果的内存分配也能省掉,如果乘法运算里 emit 的是 llvm IL, 就能 inline 进来做优化。如果编译器知道运算对象是矩阵,也能主动生成更优的代码。
再一种情况是你可以告诉编译器,说不关心浮点运算做分配律 / 交换率变换的精度损失,那么可以做的优化就更多了。
@wppurking @bhuztez 专业歪楼 30 年...
@bhuztez 嗯,编译到 llvm 没有编译到 C 然后交给 opencl 有前途。不过 opencl 的代码限制略多,编译到 llvm 然后靠 llvm 的自动矢量化,代码的自由度应该更高点
首先是你们的 benchmark 太片面,对其他语言很不公平,光列出几个和 C 而且是很多年前的 GCC 的 benchmark 就说和 C 有得比,太误导人了。GCC 某些情况下 -O3
比 -O2
慢,所以这些 benchmark 里用 -O3
就会比 -O2
慢?另一方面却又说我给的带数据库查询和模板渲染的 benchmark 用的 Go 版本太老,双重标准...
在你们的"权威" helloworld 测试中,有没有 cache policy / secure header ? (不明白可以就地看看 ruby-china 的响应头 X-XSS-Protection 等部分) 有没有靠 keep-alive 减少握手?(真实世界 keep-alive 然后连续几万个请求的只有爬虫和 ddos 了吧?) 有没有 session ?(事实上签名 cookie 做 session 的话要 openssl 取 secure random, 以标准计算签名等操作也是非常费时间的; 用服务器端 session 的话要多产生 io, 速度也会折扣)
对不同的 benchmark 和应用场景,比较的结果都是不同。我发那帖的目的就是表明 Go 和 C++ 也有不如 Ruby 快的情况,认清楚为什么快和慢更重要,而且模板渲染比 n-body 之类的 benchmark 对 web 开发更有意义。
python 是和 ruby 差不多"慢"的,但是 Go 有性能可以和 numba 相比的库么?通过 DSL 和动态生成代码优化高性能计算,python 都超越 hadoop 了 (从视频 10 分钟起,这个 talk 也阐述了数据结构的重要性).
其实加 CDN / 加缓存 / 改进算法 / 改进设计做性能优化的效果好得多。从 iron.io 那种没代码没真相的以广告为目的的例子里又能看到啥?做网站我们还要考虑网络延迟,还要用很多同样用 C 编写的第三方库 (尤其是需要性能的部分), 花很多时间在系统调用上,考虑浏览器渲染速度,更一步冲淡了语言框架选择的性能影响。
Rails 开发无所不用... 很多项目里 js, python, perl, go 写的库都用到了...
给这么多负面评价真抱歉,我承认我的表述也不乏冲动失实的地方,但没人唱唱反调的话真要牛吹上天了...
NaN 和 64bit (luaJIT 和不少 js 引擎都在用) http://nikic.github.io/2012/02/02/Pointer-magic-for-efficient-dynamic-value-representations.html
后来猴子改成了 128bit 的 fat pointer, 在 64 bit 处理器下 fat pointer 的操作也是指令更少