V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  hitsmaxft  ›  全部回复第 13 页 / 共 42 页
回复总数  836
1 ... 9  10  11  12  13  14  15  16  17  18 ... 42  
2015-02-09 14:12:27 +08:00
回复了 LMkillme 创建的主题 编程 编程语言的性能由什么决定?
@LMkillme 这个得反推

## 首先必须是高效的字节码+虚拟机

像 php 这种没有 jit 的, 从起跑线上就输了,得靠 c 扩展补上,相当于手动给虚拟机打补丁。

## 然后是执行模式和基础库高效

比如 node/actor/goroutine 可以优化 io依赖比较高的场景,但是如果是偏计算的场景,又退化到拼虚拟机了。
再说php, fpm 的多进程执行+每次请求完毕 fullgc 的模式决定了在高并发的情况下很浪费资源,又得靠c扩展补,接着打补丁,或者用 reactor 等其他执行模式重新开发。
相比之下, java 的多线程模式对于资源重用是比较高效的,但是又老占内存,有时候跟 c 系不见得能比。

这部分比较模糊,只要提供一个合理高效的库,即使不是语言默认支持的执行模式, 也可以达到目的。
这里还是没开发者什么事, 关键在于选对架构。
开发者能选的,无非是语言自带基础库和第三方库,里面也是各种猫腻, 有的是纯语言实现,有些用 c 等低级语言实现,搞不清楚用错的, 就呵呵了。

## 最后才是语言效率

连 a=1 这样的语句, 在不同语言里面解释或者编译之后生成的机器码,也是不同的。
写代码的时候要合理优化写法,选用高效的方式实现业务逻辑,或者根据版本升级,合理重构是必须的。
比如 php 的部分数据结构实现和基础库是比较低效的,最近几个版本都在拼了老命优化, 但是有弱类型等天生短板在那里,注定了没其他强类型的性能高,加上 jit 无望。

像 汇编+c 这种天生开挂的语言,以上所有事情都能自己实现,纯粹看人的技术实力,大不了自己实现虚拟机。比如 mozilla ,先实现一门语言 rust , 再重写浏览器核心。

我们的 web 应用从 php 迁移到 java。在优化的手段和基础库的选择上多了很多选择, qps 是原来的3倍,
但是相应的, 在优化和框架设计的成本上增加了 N 倍,而且是在代码质量上严格审查,各种 review 打回的基础上实现的。


最后,黑了 php 这么多, 回下血。php 面向 web 应用的开发效率很高, 在一定场景下可以推翻以上123点,吊打其他语言,但是得优雅地绕过所有的坑。
2015-02-08 22:43:32 +08:00
回复了 LMkillme 创建的主题 编程 编程语言的性能由什么决定?
这种对比还是比较常见的, 比如 c / c++ / java 之间的快排实现.

早期的java的部分基础库是c实现的, 因为纯java实现性能不够. 但后来的版本就迁移到java实现了, 因为在有 jit 的帮助下, java的版本快于原来的c实现. c++ 也有同样的过程

程序员所接触的是语言提供的标准接口, 经过编译之后编程字节码或者机器码. 这个编译的过程中, 有很多黑魔法是程序员默认情况下没法干预的. 这就好比优化php/python程序, 会用上 c, 来突破纯语言实现的限制; 如果要优化c,就得针对具体硬件,使用汇编优化.

但是反过来, 也存在编译器无法预测程序员的行为, 没法主动优化. 需要程序员使用一个抽象层次比较高的语法/基础库, 那么编译器开发者可以尽可能地进行优化.
也就是说自行编写的代码, 那么可能反而因为没有充分编译优化而比同样的基础库运行效率低.

搜索和hash都是语言最基础的部分基础库, 因此优化的工作比其他基础库多一些也是应该的. 但是原因都是因为各个语言的工作环境不一致, 换个运行环境得到的结果可能就变了, 所以这种比较都是给开发者一个信心而已..


以上都是针对单个api而言, 完整的语言性能需要更加多方面的分析.
2015-02-04 20:38:35 +08:00
回复了 gouwudang 创建的主题 PHP 前端、PHP、Linux 都很熟的程序员是不是很稀少?
不缺啊. 是你的给的薪资和期望太少.
2015-02-04 20:37:32 +08:00
回复了 GeekGao 创建的主题 问与答 你会不会因为周围同事职业技能水平低而离职?
别拖后腿就行. 还是需要一些低水平的码农给自己当垫脚石的
2015-02-04 20:36:33 +08:00
回复了 chenai 创建的主题 职场话题 本科刚毕业做 web 后台开发,一个月 15k,算高么?
今天的应届研究生进bat是这个薪资, 拿不到是水平问题.
2015-01-31 16:47:44 +08:00
回复了 sandideas 创建的主题 V2EX 我感觉 V2EX 发帖应该扣更多的铜币。。甚至。。银币。
每次打开第一屏乃至第二页, 大部分都可以点忽略主题.
小白太多, 整天想些有的没的
2015-01-30 10:04:50 +08:00
回复了 zongwan 创建的主题 程序员 作为 coder,如何看待 V2EX 的领取 X 铜币
发个帖子的消耗太少了。导致现在无聊的问题太多
2015-01-26 21:39:46 +08:00
回复了 mianju 创建的主题 机械键盘 Poker2 有人用么?
pock2 居然有刷固件的, 之前google 了半天没找到
2015-01-26 20:47:23 +08:00
回复了 mikewoo 创建的主题 问与答 支付宝钱包为什么非要我设置头像呢?
明显是降低咋骗
2015-01-25 15:24:07 +08:00
回复了 xoxo 创建的主题 宽带症候群 关于 DNS 劫持、七层劫持
最近淘宝客的模式改了, 这种劫持慢慢就少了
2015-01-24 22:52:45 +08:00
回复了 otmb 创建的主题 程序员 有必要花时间好好学习下设计模式么?
不见见世面怎么知道用不到。
2015-01-24 22:52:00 +08:00
回复了 kisshere 创建的主题 PHP php 中的中间变量调试打印出来,众 V2er 们怎么处理的?
既然是 ajax 请求, 可以直接http访问, 和页面有什么区别, post 语句就用工具构造呗。
2015-01-24 22:06:46 +08:00
回复了 cssnote 创建的主题 JavaScript 看完一些 Javascript 基础知识,有哪些小项目适合练手?
写个简版 jquery
2015-01-24 21:43:49 +08:00
回复了 Registering 创建的主题 程序员 得恶补编译原理了, false == isShown 和 isShown == false 的区别
早期 x == false 很容易不小心写成 x=false 导致永远为 true

现在编译器会检查不说, ide 也会检查, 各种语言对应的代码质量工具也会检查, 这个规则显得有些落后。

然而,定这中规矩,无非是为了规避低质量代码,用简单规则+惩罚来提高整体代码质量。毕竟人的能力有差别。在没有工具支持的时候, 用一个简单的命令式规则, 更加简单高效,比如工具检查出来的 warning 没修复, 那么判断不合格代码,禁止提交。

所以,首先得开发者愿意关心这些『异常』, 并且敏锐地觉察到代码的质量问题,并且修复这些「warning」。也就是高质量的开发者不需要这类小把戏 , 他们善于使用工具解决, 而不是人肉。

最后, 你也说了, 是『优秀』的项目。这类项目的开发者不屑于这些写, 大部分人完成的大部分项目是配不上『优秀』这两个字的。
2015-01-24 13:03:16 +08:00
回复了 otmb 创建的主题 程序员 ror 会打败 j2ee 么?
java 适合用来对付一堆能力平平的码农

ror 嘛, 适合有创造力的团队

别 yy, 大部分人都是前者。 所以选什么看 leader 的选择
2015-01-21 13:50:04 +08:00
回复了 wuliao49 创建的主题 程序员 开帖说说魅族 M8 花一年时间还搞不定计算器的事情
计算器这种专业的事情, 交给一般的程序员哪能做得好。
2015-01-18 19:20:06 +08:00
回复了 matrix32767 创建的主题 问与答 堂弟硬要出国读本科,该建议他去哪个国家呢?
呵呵,小心他家以后怪你的建议错了
2015-01-18 17:06:30 +08:00
回复了 fankz 创建的主题 Android 不谈价格,只谈产品,魅族和苹果到底相差在哪里?
1. 我是 macos 用户
2. appstore 带来的一致性体验
3. 硬件设计在整体观感出众

自带的服务都是渣渣,不说了, 但是能用。

cpu 内存什么都就别比, 反正我这是流畅的。

哦,屏幕分辨率是吧,现在在用,变大了看起来舒服,然后手持成本也提高了。
1 ... 9  10  11  12  13  14  15  16  17  18 ... 42  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   983 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 19:51 · PVG 03:51 · LAX 11:51 · JFK 14:51
Developed with CodeLauncher
♥ Do have faith in what you're doing.