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

new出来的对象,不一定在堆上?聊聊Java虚拟机的优化技术:逃逸分析

凑段耘辛1. 基础

1.1 图片加载优化

对于非文章类的大图片先进行一遍压缩,使用各种压缩网站就可以

然后对于各种图片最好都转换为为webp格式,相对于传统格式能降低大小大概四成左右

1.2 gzip压缩

gzip是针对文本类型进行压缩的,例如html、js、css、txt等格式,可以在nginx处打开

http {

gzip on;

gzip_buffers 32 4K;

gzip_comp_level 6;

gzip_types text/plain application/javascript text/css;

}

2. 首屏渲染

Vue类型的博客的内容是通过实时加载去渲染的,如果蜘蛛只获取了html而没有去加载js的话实际是没有内容的。有几种解决方案。

将vue渲染成静态文件,每次增加新文章都重新渲染一遍,然后上传到服务器上。优点是加载快,但是调整插件什么的比较麻烦。

实时判断爬虫然后进行服务器端渲染。

我这里主要讲一下服务端渲染。首先是nginx判断爬虫:

http {

...

server {

...

location ... {

if ($http_user_agent ~* "Sogou web spider|BingPreview|baidu|Baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator|bingbot|Sosospider|Sogou Pic Spider|Googlebot|360Spider|qihoobot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot|Sogou web spider|soso|sogou|yahoo|sohu-search|yodao|robozilla|msnbot|MJ12bot|NHN|Twiceler|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|LinkpadBot|Googlebot|Ezooms") {

proxy_pass http://xxx.xxx.xxx.xxx:3000?url=https%3A%2F%2Fwww.xxxxxxxx.com${document_uri}$is_args$query_string;

}

}

}

}

逻辑就是通过请求的User-Agent判断是否是爬虫,如果是爬虫就调用一个端口为3000的服务将路径转发给它让它加载完返回加载后(js会渲染完成)的html。

至于这个端口为3000的服务,我是用了一个docker安装的镜像为zenato/puppeteer-renderer的容器,对外端口为3000,作用就是进行服务端渲染。

docker运行语句:

docker run -d --name puppeteer-renderer -p 3000:3000 zenato/puppeteer-renderer:latest

zenato/puppeteer-renderer的开源地址:https://github.com/zenato/puppeteer-renderer

3. 接口

后端服务其实没什么好说的,就是做缓存就好了,可以用Redis。另外一般返回格式为json,所以最好在nginx处加上json格式的gzip。

http {

...

gzip_types text/plain application/javascript text/css application/json;

}

4. Live2d的优化

对于live2d,基础的js和css的优化就不说了,顺便提一下live2d的图片因为要拼接起来,所以很大,记得也要压缩

这里主要说一下moc格式,moc这个是用来存live2d模型的,我这里会达到三百多k,非常占资源,其实moc是可以进行gzip压缩的,压缩后我这里会降低到一百多k,不到一半,moc进行gzip压缩有我这里有两种方案:

对nginx进行配置,再增加一个针对moc的gzip压缩

http {

...

gzip_types text/plain application/javascript text/css application/json text/x-moc;

}

蕾姆live2d

调整xx.model.json文件中的后缀

{

"model": "xx.moc.txt",

}

然后修改xx.moc为xx.moc.txt即可(需要确保nginx有做text/plain的gzip压缩)

5. 七牛云的优化

5.1 七牛云的图片瘦身

可以在七牛云的 对象存储 -> 空间管理 -> 你自己的空间 -> 多媒体样式 -> 新建样式 中配置。

我这里建议是打开图片瘦身+输出格式为webp。需要注意修改以后右侧可以看到示例链接,复制你图片的链接加上多出来的后缀即可访问。我这里访问后基本可以做到瘦身三四成的样子。

放一下配置截图:

image.png

5.2 七牛云的gzip压缩

截止到我写这篇文章的时候,七牛云会默认开启gzip加速的类型有:

text/plain

text/css

text/javascript

text/xml

application/x-javascript

application/json

application/xml

application/xml+rss

application/javascript

来源: https://developer.qiniu.com/fusion/1571/seven-niuyun-support-for-text-file-download-optimization

不能进行自定义,所以对于上面的live2d的moc文件最好调整为txt格式进行gzip压缩

6. 工具

我这里用了谷歌的 PageSpeed Insights 进行分析,分析还是很全的。

PageSpeed Insights: https://pagespeed.web.dev/?hl=zh_CN

放一下截图:

4790eaf60145dd91b3f147df0db582f0.png

可以点击七仔的博客测试我的博客速度

http://www.jsqmd.com/news/440387/

相关文章:

  • 移植freertos的步骤
  • 2026年油雾净化设备厂家推荐排行榜:油雾收集器、过滤器、处理器、分离器、回收器,高效净化与节能环保的工业优选方案 - 品牌企业推荐师(官方)
  • 2026年哈尔滨塑料管材企业服务优质榜:PE穿线管、PPR管、波纹管、钢带波纹管、克拉管、HDPE双壁波纹管、雨水管 - 海棠依旧大
  • Influxdb订阅与kapacitor使用梳理
  • 如果事先没有定义静态关系,在实际代码中,我们就需要提供一种使用动态关系的机制,让我们的查询、类型推断、DTO推断等能力得以正常使用。 ...
  • 2026避坑指南:AI论文写作工具Top5硬核对比——从免费大纲到物理隔离Agent,博士该为哪一款买单? - 沁言学术
  • EBS:查询系统配置文件
  • 电缆损坏目标检测数据集(1300张图片已划分、已标注)| AI训练适用于目标检测任务
  • 我们是一家医美机构,想做AI精准获客,求推荐一家擅长医美行业的AI推广公司 - 品牌2026
  • 2026年 不锈钢加工厂家实力推荐榜:激光切割/折弯/冲孔/冲压/焊接/拉丝/压花/剪切,一站式精密加工解决方案 - 品牌企业推荐师(官方)
  • 技术原生型VS垂直专业型:2026年五大AI推广公司综合实力横评 - 品牌2026
  • 万字带你深度了解MQ消息队列
  • 知网降AI率:人工改写和嘎嘎降AI效果对比,差距不是一般大 - 还在做实验的师兄
  • 2026年 槽钢厂家推荐排行榜,镀锌槽钢/S355J0/AH36/Q355B/10#/S275/Q420/英标/欧标/日标槽钢,实力源头工厂精准供应 - 品牌企业推荐师(官方)
  • 医美机构想做AI精准获客,推荐几家擅长医美行业的AI推广公司 - 品牌2026
  • 机械制造企业AI获客指南:2026年垂直领域GEO服务商深度测评 - 品牌2026
  • tt: is ウクライナ unique for ロシャ?
  • 毕业论文被导师打回说AI率过高?3步搞定不用愁 - 还在做实验的师兄
  • 【开题答辩全过程】以 淮胜景区信息管理系统为例,包含答辩的问题和答案
  • 2026年AI智能营销推广服务商精选:五家北京企业深度解析 - 品牌2026
  • 2026年AI推广优化服务商综合实力解析:五家北京企业选型指南 - 品牌2026
  • 千问、豆包深度测评:NAD+、NMN前十品牌哪家强?盼生派NMN凭活性吸收稳坐榜首 - 速递信息
  • 记一次酣畅淋漓的js逆向
  • 2026年钢轨厂家实力推荐榜:P43铁路钢轨、外标钢轨、天车U型钢轨、单轨吊型轨、永洋/70MN/50MN轨道钢轨源头精选 - 品牌企业推荐师(官方)
  • 答辩前论文AI率突然飙高?过来人教你紧急处理 - 还在做实验的师兄
  • [python]基于动态实例的命令处理设计
  • Note - 决策单调性
  • 深度模糊多视图学习:FUML, 提升多视图分类的准确性与可靠性阅读笔记.19674907
  • 用DeepSeek写的论文怎么降AI率?最全攻略来了 - 还在做实验的师兄
  • LangChain框架入门:输出解析器使用技巧