首页 > 编程语言 >如果我的JavaScript跑的和Java一样快

如果我的JavaScript跑的和Java一样快

时间:2022-11-03 12:55:29浏览次数:42  
标签:Java 性能 JavaScript 指标 一样 SQL 解析

重度应用GraalVM一年后有感;

 

Java世界里总有一种风气,就是我要测试看数据,跑case看指标;但实际落实到指标上呢,比如一个场景,到底IO多还是CPU多,到底怎么做合适,变得模糊;

所以啊,指标失真,是无可避免的,反倒是理论分析变得尤为重要;

(说个不好听的哈,都来搞Java了,性能就不要和C++比了,做工程以目的为重,C++再快,它页不会为你提供如此完备的HashMap,不是吗?

 

GraalVM的 Polyglot能力是我的重点应用场景,我将其应用到了生产实践中,来践行语言融合;

那么,语言融合的好处是如下的:

1.更宽广的生态,当我想要一个能力,一个轮子,我有两个世界可以寻找;

2.更低的开发成本,以JavaScript为核心完成业务主线开发,Java负责更底层的工具与基础部分;

3.可接受的性能,JavaScript以编译形态执行后,指标就不讲了,至少是不输给V8的吧;

 

但请读到这篇文章的人不要纠结语言之争,性能之争,Oracle搞脚本化也不是一年两年了,人家是冲着工业应用去的,没空争论这些没用的;

但以后的Java后端开发会受到怎样的影响呢,我这篇会开始记录案例,也许会有有缘人看到并交流

 

如果我的JavaScript跑的和Java一样快,以后的开发会是什么样子呢?

 

案例1:

我们这里的Java开发氛围啊,SQL Boy很多,就是写个SQL长度达到百行,令DBA头痛不已;

一般来说可以加限制 ,这就要通过SQL解析,Java的方案通常是Druid或者别的SqlPaser,都挺重量级的,这不优雅;

但我们有JavaScript Polyglot ,并从npm找到了一个包:js-sql-parser

这东西开发成本超低啊,源码就一个mjs,语法规则什么特别好改,解析出来的语法树也很好遍历

大概两个小时做好了解析sql分析相关table数量,并在超过限额后禁止执行的功能,然后挂在Mybatis上(对的你没看错,就是Java包与JavaScript包糅在一起)

然后DEV上线,运行良好,性能优秀;

该功能总计花费半个人天,这就是最大的优势;

 

标签:Java,性能,JavaScript,指标,一样,SQL,解析
From: https://www.cnblogs.com/user-for-once/p/16854099.html

相关文章

  • Java是怎么在运行的时候识别对象类型的
    Java是怎么在运行的时候识别对象类型的Java可以在运行的时候知道对象的信息,这主要体现在Java的两个功能,RTTI和反射。RTTIRTTI全称Run-TimeTypeIdentification,通过运行......
  • java开发环境搭建及环境变量配置
    一、 JDK的下载与安装jdk下载地址:https://www.oracle.com/java/technologies/downloads/#java8根据电脑系统及位数选择下载对应jdk安装包以下用windows系统为例,jdk安......
  • java向上转型知识点收录
    packagetex2polymorphism;/*总结如下:*对于多态,可以总结它为:一、使用父类类型的引用指向子类的对象;二、该引用只能调用父类中定义的方法和变量;三、如果子类......
  • java 中文乱码问题解决思路
    碰到中文乱码,引起的原因一般为,在编写程序的时候的编码方式与查看的时候的编码方式不一致,从而导致了中文乱码。碰到这种问题,首先要做的就是查看自己编码方式,以String为例St......
  • java 发送邮件
    可能有人会说了,发送邮件多么简单,我单手十分钟就可以写完。大佬避让,我是萌新,所以发送邮件也从最简单的说起。因为本人是在springboot中发送邮件,所以采用spring提供的邮件解决......
  • java 简单使用线程池
    定义一个ThreadPoolExecutorprivatefinalBlockingQueue<Runnable>taskQueue=newLinkedBlockingDeque<>();privatefinalThreadPoolExecutorexecutor=newThreadPo......
  • Java基础Day6-面向对象
    一、面向对象编程(Object-OrientedProgramming,OOP)面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据。从认识论的角度:先有对象后有类。对象是具体的......
  • springboot javax.servlet.Filter使用
    请求拦截器优点:1、拦截非法请求重定向2、验证用户token下面是demo程序,有问题的可以在评论区留言@WebFilter(filterName="authenticationFilter",urlPatterns={"/user/*......
  • 用 java 简单实现 rpc 通信
    代码不一定能够运行起来,这是在之前的代码中抽象出来的。这里只是说说基本的思路定义消息:packagecom.xiaoyao.game.net.framework.codec;importcom.google.protobuf.Messa......
  • 力扣1668(java&python)-最大重复子字符串(简单)
    题目:给你一个字符串 sequence ,如果字符串word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,那么单词 word的重复值为k。单词word 的最大重复值......