V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  mzer0  ›  全部回复第 15 页 / 共 18 页
回复总数  357
1 ... 7  8  9  10  11  12  13  14  15  16 ... 18  
2015-11-30 20:21:18 +08:00
回复了 fxxkgw 创建的主题 职场话题 被裁了
各位小心一下, 这种帖子都有软广的嫌疑, 推广各种不正规的金融交易平台.
2015-11-30 20:11:40 +08:00
回复了 Livid 创建的主题 Boston 有 V 友在 Boston 么?
你现在在美国做什么工作啦?
2015-11-30 09:25:24 +08:00
回复了 Liir 创建的主题 服务器 关于 RAID1 的一个疑问
@JJaicmkmy 怎么和拍照那个 cmos...
@wy315700 呃...不知道!我的话是因为自己设计过线程锁,所以很多年前在 csdn 上和别人有过讨论。
@binux 你回去试试看,能不能“永远” 100%占用。

这个问题在《编程之美》里就说过, python 这样的语言有 GC 时间,是永远不可能 100%占用的。
最后奉劝一句。不懂就直接说不懂,不然很搞笑。


@binux 不要掩饰自己是个傻逼了。玩文字游戏没有意思。如何让 6 核的计算机,永远保持 cpu 的 100%占用率?我相信你连这个都做不到。为什么?不理解操作系统的时间片模型的人,或许能做到瞬间 cpu 占用率 100%,但做不到一直。
任何试图说高并发很简单的人,我问你们。

单次线程锁死,平均占用几个 cpu 时间?单次 IO 呢?单次异步 IO 呢?基本常识都没有,谈什么高并发。

单次线程锁死的时间都背不出,搞笑。

最优线程数呢? 6 核的 cpu ,最优线程数是几?背不出?搞笑。

大哥,不要因为自己学的少,就觉得别人做的事情很简单,好不好?说实话, c/c++/c#/java...这些语言的多线程模型都非常类似,这些语言里哪一门你学好了? go 语言学过吗? coroutine 知道吗?会实现 coroutine 吗?

不再回答任何问题,不要试图攻击我而显得自己“不那么没有文化”,懂的人自然懂,不懂的人我当你们是傻逼——技术都不在一个层面上,聊什么聊?

我认为,技术不在一个层面上就别聊了,我说的你听不懂,白费劲。
@binux 我只能说你幼稚。或者说傻逼。你是学生吧?工作了?无锁无线程?无脑儿。
任何说高并发容易的人,你们一个月领多少钱?想过为什么吗?

高并发很容易?扯淡。

高并发的 Java 是需要重新设计 GC 策略的,你会实现 GC 吗?最优单次内存分配和 cpu 核数是什么关系知道吗?

如果你编程的时候都不用考虑这些,那你说高并发“很简单”,我只能心里默念:你真无知。

事实上 Java 最难的地方之一就是多线程,非常难,年年有人写论文来讨论。

我们之中有多少自以为是的人?以为自己两行代码能写出很多东西,就说 xxx 很容易, yyu 也很容易?你们的业务开那么多机器来跑分布式,真的不是因为性能太差吗? IO 表现那么差,真的不是因为反复锁死线程导致的?
实时测定流量以后,线程池必须对流量有相应的正反馈,有很多研究者都发了论文来探索最优正反馈曲线,以及相应的比例系数。

整体弄 php 、 python 的哪懂这些?对 c++而言,分配内存都需要正反馈算法,算法的比例系数在不同 cpu 架构 /核数上还不一样,都是需要查论文的。

单单论 Java 高并发,能写 n 本书,选择正确的反馈模型就能写一本书, php/python 在多核多 cpu 的表现非常非常差,研究者认为核数超过 10 以后,脚本语言普遍都不能发挥计算机性能,这和脚本语言底层模型有直接关系,脚本语言底层模型是不检测计算压力的,因此选用的是中低压力下的最优模型。
一个写得好的线程调度算法,永远不可能同时满足高并发场景和低并发情景,高并发算法在低并发情形下必然是低效的,因此实时流量监测就非常重要。甚至某些基于数学定理的策略(非完全锁死)只在特定 cpu 运行情况下才能达到高成功率(论文指出可以超过 98%)。
@binux cpu 峰值持续时间、 cpu 上升沿、线程调度次数、同步量被锁定次数。
@binux 解决不了一千万个并发请求的人,根本不会懂什么叫大并发。你用过四路 cpu 的机器吗?怎么发挥性能?
对绝大多数 php 、 python 等自控制线程调度的语言来说,常年低 cpu 占用是正常的,这不能说明程序不安全。

但性能表现不如预期的 Java 程序, 100%是有 bug 的。

手动控制线程调度非常复杂,没有做过的人是不明白的。整天说安全性,不安全的 Java 程序能泡到 100%占有不崩溃?

你知道安全性有几种吗。线程安全,数据安全,异常安全,灾毁安全?动不动说安全,难道你的“安全”仅仅定义为没有手抖写错变量名?太低级了好不好!
@JamesRuan 对于 Java 程序员而言,任何一台机器, cpu 占用率跑不到 100%都是一种耻辱。

Java 那种手动控制线程调度的语言,与 php 、 python 那类自动控制线程调度的语言,有着极大的差异。手动控制线程调度的情形下,只要设计模型是正确的,在线程安全的同时,必然拥有良好的峰值性能。对 Java 而言,安全性与性能是统一的,两者中有一者不足,都说明另一半是有隐患的。

想必你也不懂什么叫消息队列 /缓存 /高并发。难道设计正确的线程调度模型, cpu 占有率会跑不到 100%?难道常年 cpu 占有率上不去的 Java 程序,你敢说它的模型没错?
2015-11-30 08:05:23 +08:00
回复了 Liir 创建的主题 服务器 关于 RAID1 的一个疑问
@Liir 不是 uefi 和 bios 两种吗,怎么多了个 cmos ?
2015-11-30 00:57:28 +08:00
回复了 Liir 创建的主题 服务器 关于 RAID1 的一个疑问
cmos 是什么?
2015-11-29 23:31:22 +08:00
回复了 Flygoat 创建的主题 IPv6 杭州电信天地良心呐,竟然给上 IPV6 了
HE 和 tunnel 是什么?
你们一般用哪家 CDN? 什么价格? 买得多有折扣吗? 求推荐.

一定程度上, 我支持楼主 @li24361 和 @salmon5 的观点.

很多人误解了消息队列 /缓存 /高并发. 缓存并不等价于 memcache, 高并发也不等价于 HAProxy/LVS. 事实上, Java 程序员 的选择要比 Python 程序员 多, 因此 Java 总体上来说比 Python 更复杂.

1) Java 的同步 /异步锁是需要自行控制的, 这也意味着 Java 有更大的优化空间.
2) Java 在处理实时消息时有阻塞 /非阻塞的选择, 非阻塞有异步 /消息队列的选择, 优化空间很大.
3) Java 的高并发是需要自行控制线程调用的, 控制线程有很多种模型, 优化空间很大.

因此, Java 可以拥有很好的网络性能.

诚然, 现在网络服务器的瓶颈在于磁盘 IO, 但并不能说网络性能 /CPU 就不用考虑了. Java 可能无法大幅度提高性能, 但我必须指出:

1) Java 完全可以在很短的时间内编写出 Memcache/HAProxy 的替代品, 并且, 在其特定的应用场景上, 性能超越 Memcache/HAProxy.
2) 消息队列 /缓存 /高并发是 Java 的难点, 非常非常难, 我相信以上回答问题的人中, 几乎不可能有人能背出同步锁的实现方法, 因此不懂得同步锁的差异会对性能有怎样的影响.
3) 积少成多, 非常小的性能差异, 累积起来便可变成巨大的障碍.

但是, 非常遗憾, 几乎所有 Python 程序员都无法背出消息队列的基本模型, 缓存的基本模型, 同步锁的基本模型......我并不是贬低 Python 程序员, 我只是说明, 这就是为什么 Python 程序员无法理解 Java 程序员.

但是, 如果一名 C#的程序员背诵不出上述的基本模型, 那我肯定不能认同他. 因为上述模型是 C#的常识.

* 我并不是说 Java 比 Python 好, 相反, 我本人并不使用 Java.
* 但是, 任何说"消息队列 /缓存 /高并发"不难的人, 你们绝对是在扯淡, 在你眼里, 高并发就是 HAProxy? 缓存就是 Memcache? 完完全全是扯淡.
* HAProxy 和 Memcache 的性能真的不怎样, 很容易被超越. 为什么? 因为他们都是为"通用场景"设计的, 在特定场景里, 很轻松就能超越.
* 楼上绝大多数仁兄, 都是不计算线程调度的时间, 以及网络操作的时间的......

以上几个人背过多线程的基本模型??? 给你一台 20 核的服务器, 要求以最快的速度解决一千万个请求, 你会怎么做? 将请求以 HAProxy 分发, 并使用分布式计算来解决??? 扯淡!!!

如果自己不懂, 就老老实实坦诚自己不懂, 光是同步锁这一个内容, 就能写一本书, 微软年年都在研究同步锁, 每次出新的 Windows 都会使用新的同步锁模型, 你们懂不懂同步锁能造成多大的性能差异? 新浪开发的 FastSocket 你们知道吗???

楼上绝大多数人都不懂得如何发挥一台服务器的全部性能, 如何让服务器的 cpu 真正跑到 100%的占用率, 所以你们觉得瓶颈在于 IO, 实际上:

如果同步锁 /线程协调做得不好, IO 速率会非常非常非常非常低!!!

因为 IO 是占用 CPU 的!!!

所以很多人说瓶颈在于 IO, 其实很有可能瓶颈是你没有一个合适的编程模型, 导致 CPU 不断被占用, IO 需要使用 CPU 的时候抢占不到!!!

如果你写的程序不断去占 CPU 周期, 而且占得特别多, IO 受影响会非常厉害!!!

Python 做了通用的模型, 来简化程序员的工作, 使程序员不用考虑这些事情.
但 Java 程序员是需要考虑的.
1 ... 7  8  9  10  11  12  13  14  15  16 ... 18  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2618 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 07:01 · PVG 15:01 · LAX 23:01 · JFK 02:01
Developed with CodeLauncher
♥ Do have faith in what you're doing.