• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

为什么Impala要使用C++语言,而不是Java

其实Impala是:Java前端与C++处理后端 这种形式的。我们知道:Java是不能够直接在操作系统层面上运行的,但是C++可以。这就导致了C++的性能比Java高那么一些。Impala如果是个追求性能的偏执狂的话,它自然不会放过一丁点的优化可能。

一、为什么Impala要使用C++语言,而不是Java

1.其实Impala是:Java前端与C++处理后端 这种形式的。

2.我们知道:Java是不能够直接在操作系统层面上运行的,但是C++可以。这就导致了C++的性能比Java高那么一些,Impala如果是个追求性能的偏执狂的话,它自然不会放过一丁点的优化可能(其实,如果它用Java实现,也不是不行,毕竟现在Java 8的出现,使得java与C++在性能上的差异进一步缩小。你看,Presto不就是用Java实现的吗,Presto与Impala比起来性能一点也不差!)。

3.会Java的人比会C++的人多很多,Impala既然付“失大众取小众”的代价,也要坚持性能至上的原则,想必他们对自己的产品还是很有自信的:就算我不亲民,但因为我的性能上的诱惑,你还是回来用我~

4.也许是对未来的预期。多少年来,对分布式系统来说,最大的瓶颈是IO(磁盘IO和网络IO),而不是CPU。似乎随着未来硬件技术的发展,IO将不再是分布式系统的主要瓶颈。这就使得CPU的计算能力将重新成为分布式系统的主要瓶颈,而两者中,C++是更会利用CPU的那一个,所以,在分布式领域,似乎未来在理论上是C++的天下······(这当然是一派人的观点。而我的观点不是这样的,我认为未来的发展趋势是机器要去迁就人,而不是人去迁就机器,要让人放下简单易用多生态的Java,不是那么容易的)

延伸阅读:

二、字符集(Character set)是什么

是多个字符(英文字符,汉字字符,或者其他国家语言字符)的集合,字符集种类较多,每个字符集包含的字符个数不同。

特点:

①字符编码方式是用一个或多个字节表示字符集中的一个字符

②每种字符集都有自己特有的编码方式,因此同一个字符,在不同字符集的编码方式下,会产生不同的二进制

常见字符集:

ASCII字符集:基于罗马字母表的一套字符集,它采用1个字节的低7位表示字符,高位始终为0。

LATIN1字符集:相对于ASCII字符集做了扩展,仍然使用一个字节表示字符,但启用了高位,扩展了字符集的表示范围。

GBK字符集:支持中文,字符有一字节编码和两字节编码方式。

UTF8字符集:Unicode字符集的一种,是计算机科学领域里的一项业界标准,支持了所有国家的文字字符,utf8采用1-4个字节表示字符。

相关文章