飞污熊博客

静下心来做一件事

Antlr (ANother Tool for Language Recognition) 是一个强大的跨语言语法解析器,可以用来读取、处理、执行或翻译结构化文本或二进制文件。 它被广泛用来构建语言,工具和框架。。ANTLR 根据语法定义生成解析器,解析器可以构建和遍历解析树。

所有编程语言的语法,都可以用ANTLR来定义。ANTLR提供了大量的官方 grammar 示例, 包含了各种常见语言,比如Java、SQL、Javascript、PHP等等。

谁在使用

  • Twitter搜索使用ANTLR进行语法分析,每天处理超过20亿次查询;
  • Hadoop生态系统中的Hive、Pig、数据仓库和分析系统所使用的语言都用到了ANTLR;
  • Lex Machina将ANTLR用于分析法律文本;Oracle公司在SQL开发者IDE和迁移工具中使用了ANTLR;
  • NetBeans公司的IDE使用ANTLR来解析C++;
  • Hibernate对象-关系映射框架(ORM)使用ANTLR来处理HQL语言
  • 其他还有Oracle、Presto、Elasticsearch、Spark

官网地址:https://www.antlr.org

阅读全文 »

Node.js平台是在后端运行JavaScript代码,所以,必须首先在本机安装Node环境。

Node.js官网地址:https://nodejs.org

如果是windows系统,可以直接下载安装文件安装。

CentOS系统安装指定的版本方法:

1
2
curl --silent --location https://rpm.nodesource.com/setup_18.x | sudo bash
yum -y install nodejs

Ubuntu系统安装指定的版本:

1
2
3
sudo apt-get update
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
阅读全文 »

写博客或者笔记的时候,会经常要将图片上传至腾讯云对象存储COS上面,需要用QQ登录腾讯云再手动上传,稍显麻烦。 看了下腾讯云开放API,对接很简单。

首先创建一个子账号,然后在访问管理-访问密钥-API密钥管理里面创建一对新密钥SecretId/SecretKey。复制保存下来。

COS有很多语言实现的SDK,Python版本的地址:https://cloud.tencent.com/document/product/436/12269

首先pip安装:

1
pip install -U cos-python-sdk-v5
阅读全文 »

PyQt5工具可以快速实现简单的界面开发,包括界面设计、布局管理以及业务逻辑实现(信号与槽)。 简单说就是使用PyQt5工具可以快速画一个控件摆放整齐、界面整洁有序、布局合理的界面。

阅读全文 »

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和JConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具, 每一种工具都有其自身的特点, 用户可以根据你需要检测的应用或者程序片段的状况,适当的选择相应的工具进行检测, 先通过一个表格形式简要介绍下这几个命令的作用和使用方法。

命令 作用
jps JVM进程ID查询工具
jstat JVM统计信息监测工具
jstack 查看某个Java进程内的线程堆栈信息
jmap jmap导出堆内存,然后使用jhat来进行分析
jhat jmap导出堆内存,然后使用jhat来进行分析
hprof hprof能够展现CPU使用率,统计堆内存使用情况
阅读全文 »

VisualVM是功能最强大的运行监控和故障处理工具之一,曾经很长一段时间是Oracle官方主力发展的虚拟机故障处理工具。 它除了常规的运行监视、故障处理外,还提供性能分析(Profiling)。VisualVM不需要被监视程序基于特殊Agent去运行, 因此它的通用性极强,对应用程序实际性能影响很小,使得它能直接应用在生产环境中。

从JDK9开始,不再打包到JDK中,需要单独下载。

阅读全文 »

JHSDB是一款基于服务性代理实现的进程外调试工具。可以在一个独立的JVM进程里分析其他HotSpot虚拟机内部数据。 或者从HotSpot虚拟机进程内存中dump出来的转储快照里还原它的运行状态细节。

该工具从JDK9的时候开始提供,随JDK一起发布,无需另外下载。

阅读全文 »

JConsole是一款基于JMX的可视化监控和管理工具,它主要功能是通过JMX的MBean对系统进行信息收集和参数动态调整。 JMX是一种开放性的技术,不仅可以用于虚拟机本身管理,还可以运行于虚拟机上的软件中,很多中间件都通过JMX实现监控管理。

阅读全文 »