当前位置: 首页 > news >正文

高性能、编译器编写语言、编程语言的高低贵贱

高性能

高性能是一个通用名词,可在服务器、客户端甚至浏览器实现高性能。对于大型网站、服务器后端、游戏后端,高性能是一个不可绕过的槛。

高性能技术

  • 池机制
    • 静态分配:就像编译型语言对代码的预处理,不像解释型语言动态解析。可以减少服务器动态分配资源带来的性能下降。比如内存池、进程池和线程池、连接池。

  • 数据复制
    • 不管是不同进程或线程之间还是内核态和用户态数据复制,都尽可能减少。

  • 上下文切换和锁
    • 在高并发处理下,上下文调度和锁逐渐成为更大的性能负担,需要尽可能减少。

可参考Linux高性能服务器编程等书籍获取更多信息。

编程语言出现之前,编译器或解释器用什么语言编写?

学习各种编程语言的同学们,一定会遇到类似的问题。一个简单通俗的回答是,当前已有什么才能用什么,没有什么就不能用什么,写好了某种语言的编译器后,才能用对应语言写它的编译器。

  • C语言编译器最早使用B语言编写,因为没有其他编译C语言的编译器,只能选用已有的编程语言。

  • GCC编译器编写时,已经有不少C语言编译器了。GCC早期是用C语言写的,是由Stallman从一个由Pascal语言编写的Pastel编译器改写。后期,GCC选择用C++编译器编译,再到之后,GCC换用C++语言编写。

为什么出现某种语言编译器或解释器是用相同语言编写的?

听起来这违反常理,事实上,任何一种语言只有它的第一个编译器/解释器不能用自身去编写,之后,均可用任何语言编写实现。不过,对于是否是本机native可执行文件,不同编程语言定位不同,可选择的语言会受限。

编程语言的高低贵贱

基于对当前使用的编程语言的热爱,大部分程序员会带"有色"眼镜看不同的编程语言。

理性一点

  • 每种编程语言都出现在历史的特定时间,都是为了解决特定需求而产生。

  • 没有哪一种语言适用于任何场景,想用某一种语言适配到所有场景也是不现实的。

  • 选择适当的语言,用于特定的需求,是好程序员的特点。

  • 如果用C语言开发当今的Android APP,也会碰一鼻子灰。


若文章对您有帮助,欢迎关注。助您在编程路上越走越好!

微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

http://www.lryc.cn/news/456416.html

相关文章:

  • Python安装库时使用国内源pip install -i
  • Linux 再入门整理:详解 /etc/fstab 文件
  • 2.8 双绞线、同轴电缆、光纤与无线传输介质
  • OBOO鸥柏:布局于为无人机展厅行产业提供LCD液晶显示终端
  • win10状态栏中 “音量” 符号丢失,而在“打开或关闭系统图标”中音量开关无法调节的解决方法
  • Mysql 学习——项目实战
  • Springboot 整合 logback 日志框架
  • Hugging face简要介绍
  • A股知识答题pk小程序怎么做?
  • 单细胞转录组 —— kb-python 原始数据处理
  • 全同态加密算法概览
  • leetcode 刷题day38动态规划Part07 打家劫舍(198.打家劫舍、213.打家劫舍II、337.打家劫舍III)
  • C0010.Qt5.15.2下载及安装方法
  • 制造企业MES管理系统的应用策略与实施路径
  • Halcon 3D应用 - 胶路提取
  • 【Redis】Redis线程模型
  • Electron构建桌面应用程序,服务于项目的自主学习记录(持续更新...
  • linux Load Average 计算
  • pandas常用数据格式IO性能对比
  • 【D3.js in Action 3 精译_031】3.5.2 DIY实战:在 Observable 平台实现带数据标签的 D3 条形图并改造单元测试模块
  • 华为OD机试真题-字符串分割
  • 编程技巧:提高代码健壮性与可维护性的关键方法(以 Shell 为例)
  • 【无标题】ReadableStream is not defined
  • 【JVM】高级篇
  • nacos1.4源码-服务发现、心跳机制
  • C++ 2D平台游戏开发案例
  • 【Webpack--019】TreeShaking
  • Docker基本操作命令
  • 开源计算器应用的全面测试计划:确保功能性和可靠性
  • uni.requestPayment 支付成功之后会走 wx.onAppRoute