自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 小程序学习五(实现一个简单的基础库)

因为有个公司又是搞小程序容器的,而且老是问我相关问题,不得已只能再次复习一下。os: 其实只要理解了vdom,然后再了解一点编译相关的知识之后好像也没啥需要特别了解的。。。

2024-02-26 17:58:38 405

原创 graalvm学习(十一) 字节码如何转换为机器码

机器指令是CPU能直接识别并执行的指令,它的表现形式是二进制编码。机器指令通常由操作码和地址码两部分组成,操作码指出该指令所要完成的操作,即指令的功能,地址码指出参与运算的对象,以及运算结果所存放的位置等。机器指令的长度和格式可以根据不同的计算机系统而有所差异,一般可以分为零地址指令、一地址指令、二地址指令、三地址指令和四地址指令。机器指令是计算机的最小功能单位,是计算机硬件和软件的交界面,也是机器语言的基本组成部分。return 0;

2024-01-20 12:34:28 903

原创 graalvm学习(九) 如何使用ide debugger graal源码

【代码】graalvm学习(九) 如何使用ide debugger graal源码。

2024-01-15 15:45:14 679

原创 使用ChatGPT编写一个babel插件,优化不同环境下生成的代码

之前一直想做一个简单的项目源码优化的小工具,可惜一直拖着。最近突发奇想能不能使用ChatGPT来协助。以下为我花了两个小时做的一个小插件。(项目中90%的代码是由ChatGPT生成的)因为key好贵,所以我都是使用bing中免费的次数来生成。

2024-01-13 13:42:59 427

原创 小程序基础库与Android之间通信优化的可能

最近在学习graalvm,发现有一个graaljs项目,项目中介绍可以让java与JavaScript做数据转换,比如JavaScript中可以使用java的数据类型与结构。

2024-01-11 13:59:31 1240

原创 编译型语言-rust与解释性语言-js的性能简单对比和分析

个人感觉应该是v8中的jit起了作用,可能在执行了几次for循环所在的代码块时,v8就把这部分代码转换为机器码了。当然我这里的demo可能比较简单,可能在其他场景下,数据又会不同。目前的高级语言性能其实都差不多,主要可能还是因为大部分语言已经发展了很长时间,里面的大佬已经把细节优化的很好了,包括现在硬件不停地升级,开发者很难感知出来区别。从这个对比结果对一句话可能有更深的体会:不同的编程语言适合不同的场景,不能盲目的选择。1、从这里看其实node的执行速度是比rust快的,但同时他需要的资源也很多。

2024-01-08 15:57:33 577

原创 graalvm学习(七)Graph

Graph的功能:一种用于将字节码转换为机器码的数据结构,或者叫ir?Graal的功能就是将字节码转换为机器码,但这个功能还是需要一定的理论支持,并不能只是简单的翻译。这时候Graph就充当了这样的一个角色。图的生成基本都离不开BytecodeParser.java, 可以参考该文件中的processBytecode方法。关于图结构:https://www.yuque.com/anruofusheng/bytlpr/ti1487c1phtwkyfb编译上面的文件思路:1、通过jvmci获取字节码

2024-01-02 15:28:32 406

原创 graalvm学习(十) 如何通过java代码获取java字节码

上面命令中需要关注主要还是–module命令,从第三章可以看出来其实生成可执行文件的入口函数就在NativeImageGeneratorRunner文件中,这里可以看出来graalvm的实现方式。(当然还有其他涉及到性能优化的命令,如: -Djdk.internal.lambda.disableEagerInitialization | -Djava.awt.headless=true | -XX:MaxRAMPercentage 等)

2023-12-31 18:40:22 386

原创 graalvm学习(五)通过启动参数学习java命令

上面命令中需要关注主要还是–module命令,从第三章可以看出来其实生成可执行文件的入口函数就在NativeImageGeneratorRunner文件中,这里可以看出来graalvm的实现方式。(当然还有其他涉及到性能优化的命令,如: -Djdk.internal.lambda.disableEagerInitialization | -Djava.awt.headless=true | -XX:MaxRAMPercentage 等)

2023-12-27 11:39:08 454

原创 graalvm学习(四)jvmci与graalvm

替换一下Main.java (因为该demo中只有热点代码才会触发到compileMethod),可能demo使用的jdk版本是9,判断是否是热点代码的方式和我本地的不太一样,或者是机器不同?HotSpotJVMCICompilerFactory:创建JIT编译器,该编译器可以编译JVMCI提供的服务。获取java生成的字节码,可以让开发者自行实现一个编译器(比如将字节码转换为机器码)。JVMCIServiceLocator:当您需要使用JVMCI提供的服务时,可以使用。

2023-12-23 12:25:11 421

原创 graalvm学习(三)每个步骤对应的函数

本来以为graalvm是直接分析java源代码然后生成机器码,但实际是分析的字节码然后将字节码直接生成机器码。这里就引入了jvmci的功能(后续看看jvmci和graalvm是怎么联动的)。

2023-12-23 12:24:16 339

原创 graalvm学习(二)

从最后的buildImage的实现来看其实最终的实现还是通过graalvm生成的jdk来做的,native-image的功能只是生成command然后通过ProcessBuilder执行。需要注意的是args的内容好像是生成了一个临时文件来让graalvm/java去调用。

2023-12-23 12:23:35 370

原创 graalvm学习(一)从源码编译graal

【代码】graalvm学习(一)从源码编译graal。

2023-12-23 12:22:56 473

原创 实现一个简单的ide-demo

目前大部分语言都已经有了相关的lsp-sdk,我们可以找一个合适的即可,这里我们参考monaco中使用的pyright-langserver。当然也有更好的方式可以参考monaco-languageclient项目,这里只是为了更好的理解ide的实现流程,所以就尽可能拆分的细致一点。为了更好的理解通信方式此处我先通过node开启一个webscoket客户端与lsp-server通信,这样更好的理解每一个协议是做什么的。因为新公司是搞ide的,所以想从0-1实现一个ide。,以保持它们的可持续性。

2023-10-05 19:31:31 111

原创 小程序学习三(通过wx.request的原理 理解http请求)

比如在android中,基础库在拿到request的相关参数之后发送给android,android使用okhttp之类的框架去发起网络请求。这时候有一个问题,微信是支持发送buffer数据的,但基础库与android的通信中无法使用buffer的数据类型,那微信是怎么做的呢?最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String。只能和sdk的同事沟通了,ios的同事通过拦截微信发出的请求发现微信发出的数据是base64。

2023-01-27 19:46:15 403

原创 通过修改语法与启动快照的方式优化node项目的启动速度

1、通过语法解析将js文本顶部的require与import 优化为一下形式。2、 将js文件生成为快照,并通过注入快照的方式启动项目。

2022-11-21 18:05:07 134

原创 node 应用cpu和内存占用分析

生成一个.heapsnapshot文件,可以在浏览器中直接打开。单击加载性能分析报告,选择xxx.cpuprofile文件。单击加载,选择xxx.heapsnapshot文件。老师的Node 调试工具入门教程。如果你喜欢我的作品,请考虑赞助。,以保持它们的可持续性。

2022-09-02 08:00:24 972

翻译 使用 Cranelift JIT 实现一个简单语言的演示(翻译)

您好!这是一个使用 Cranelift JIT 实现一个简单语言的演示。使用开发中的新 JIT 接口。JIT 负责管理符号表、分配内存和执行重定位,提供相对简单的 API。这个Demo受到了 Ulysse Carion 的和 Jonathan Turner 的的启发。Cranelift 简介: Cranelift 是一个编译器后端。它是轻量级的,支持no_std模式,本身不使用浮点,并且可以有效地利用内存。Cranelift 的架构允许人们灵活地使用它。...

2022-08-26 08:22:53 122

原创 Tauri + Svelte + TypeScript 学习(二)

如果你喜欢我的作品,请考虑赞助。,以保持它们的可持续性。

2022-08-14 19:22:43 498

原创 Tauri + Svelte + TypeScript 学习(一)

最近公司ide打算全面使用Svelte和TypeScript 顺路学习一下。tauri的通信主要是通过invoke发送与接收消息。如果你喜欢我的作品,请考虑赞助。,以保持它们的可持续性。

2022-08-08 08:40:33 275

原创 如何优化老旧的微信小程序项目

比如经常会有同学使用webpack是非常喜欢使用@/module/demo觉得很优雅,但想象一下后面维护的人可能只是修改一个小功能,正好需要找这个文件。原因引用miniprogram_npm文件少写了一个path虽然很方便,但对于后来的维护者可以说是很痛苦的!大量静态资源文件或者js、wxml、wxss,大部分可能都没有被使用到,无形中给维护的同学添加了很多负担。小程序开发中如果接收到非常复杂而且大的小程序,我们应该如何优化呢?有的模块或者文件特别大,但又不能每天检查一遍。......

2022-07-25 06:30:00 149

原创 使用antlrv4的js api 解析html

如果你喜欢我的作品,请考虑赞助。,以保持它们的可持续性。

2022-07-15 08:42:02 252

原创 使用Antlr4的TokenStreamRewriter修改内容

在css中使用变量控制部分属性的值

2022-07-10 21:43:40 607

原创 使用swc rust api转换javascript

https://www.yuque.com/anruofusheng/bytlpr/dyx3pu

2022-07-04 08:00:00 276

原创 如何通过babel去操作ast, 并生成对应的代码。

如何通过babel去操作ast, 并生成对应的代码

2022-06-26 21:40:21 300

原创 使用Antlr4的node api解析css3

使用Antlr4的node api解析css3

2022-06-20 09:25:24 155

原创 关于 common-learning 组织

目前在开发的项目有:Docker-learningVue-learning计划学习:JmeterGo待续ps:如何加入

2020-04-03 08:44:02 708

原创 学生与教师管理系统

## 本来只是开发一个体温填报功能,后来索性开发一个学生与教师管理系统吧[源代码](https://github.com/508lab/outbreak)### 已实现功能- 后台管理- 主要是对数据的整合管理- 可视化并预警- 学生客户端- 填报体温- 教师客户端- 教师可以填报自己的体温- 查看学生信息...

2020-03-26 17:01:09 1017

原创 Github组织寻求维护者

组织地址:https://github.com/508lab已上线项目:https://www.dongkji.com/wxprogram https://github.com/508lab/wxprogram http://uname.dongkji.com 为学校实验室编写网络站点:http://508lab.github.io目前需要维护的地方:https://git...

2019-09-02 20:36:03 259 2

原创 需要远程Web工程师的请联系本人

Web前端:H5, React;移动开发:WebApp,Android;后台:Node.js, Django Jfinal SSM;上述为本人的技能~~  需要远程工程师的请邮箱联系:15135460425@163.com。

2017-12-23 18:42:29 172

原创 android中使用AIDL踩过的坑!!!!!!

在android中使用AIDL时,看着很是牛逼!可是一个很简单的例子做了一天!  那些踩过的坑:  1.  记得要编译!!!!!   在就算在AS中如果没有编译,那个类是无法生成的。  2.  需要注意Service的配置        android:process=":remote"  //将本地服务设置成远程服务        android:exported="true

2017-04-20 16:42:54 2025

原创 android中xmlns:android = "http://schems.android.com/apk/res/android"报错

复制一下http://schems.android.com/apk/res/android,File -  Settings  -  Languages&Frameworks - schemas and DtDs点击加号。把路径考进去就可以了。其实这是在一个论坛里面看到的,网址:http://bbs.csdn.net/topics/390845255

2017-02-03 20:33:38 715

原创 开启博客之路

去年的假期的时候,开始学习android,其实是学android的同时,也开始学习一些java。  android现在都说不行了,不过个人感觉学习编程这些的都一定不是只学一门...android只是我成才路程的起跑线。java与android的学习不可分。记得当时在学习java的同时开始学的android。现在人们都说php比java与C强很多...后端比前端强...作为一个搞技术的不懂后端真

2017-02-01 21:25:19 320

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除