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?urlhttps%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:latestzenato/puppeteer-renderer的开源地址https://github.com/zenato/puppeteer-renderer3. 接口后端服务其实没什么好说的就是做缓存就好了可以用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.png5.2 七牛云的gzip压缩截止到我写这篇文章的时候七牛云会默认开启gzip加速的类型有:text/plaintext/csstext/javascripttext/xmlapplication/x-javascriptapplication/jsonapplication/xmlapplication/xmlrssapplication/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/?hlzh_CN放一下截图:4790eaf60145dd91b3f147df0db582f0.png可以点击七仔的博客测试我的博客速度

相关新闻

飞算科技,让代码飞:欢迎体验 JavaAI 开发助手,参加炫技赛

飞算科技,让代码飞:欢迎体验 JavaAI 开发助手,参加炫技赛

谄挥毡汛程序员的节后困境 相信很多同行都有过这样的经历: 国庆7天假期,前4天出门旅游累成狗,后3天报复性熬夜刷剧打游戏。现在是10月7日,后天(10月9日)就要上班了,突然发现: 生物钟…

2026/7/4 15:31:02 阅读更多 →
Flutter 三方库 week_number 的鸿蒙化适配指南 - 掌控 ISO 标准周数计算、财务日历实战、鸿蒙级精密时序专家

Flutter 三方库 week_number 的鸿蒙化适配指南 - 掌控 ISO 标准周数计算、财务日历实战、鸿蒙级精密时序专家

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 week_number 的鸿蒙化适配指南 - 掌控 ISO 标准周数计算、财务日历实战、鸿蒙级精密时序专家 在鸿蒙跨平台应用处理复杂的周期性统计(如按周生成的财务报表、人…

2026/7/4 8:36:39 阅读更多 →
Influxdb订阅与kapacitor使用梳理

Influxdb订阅与kapacitor使用梳理

苑跋补科核心动机: 主要动机在于增强现有模型的泛化能力。成熟的协同过滤框架在处理用户行为数据方面非常强大,但本质上依赖于ID的记忆能力,因此在数据稀疏性和物品冷启动问题上存在固有缺陷。引入纯粹基于内容的语义ID,可以为模型提供一个不…

2026/7/5 3:54:36 阅读更多 →

最新新闻

3步掌握高效数据迁移:开源格式转换工具的完整实战指南

3步掌握高效数据迁移:开源格式转换工具的完整实战指南

3步掌握高效数据迁移:开源格式转换工具的完整实战指南 【免费下载链接】onenote-md-exporter ConsoleApp to export OneNote notebooks to Markdown formats 项目地址: https://gitcode.com/gh_mirrors/on/onenote-md-exporter 你是否曾面对堆积如山的OneNot…

2026/7/6 5:40:40 阅读更多 →
利用Applera1n工具绕过iPhone激活锁:原理、实操与限制详解

利用Applera1n工具绕过iPhone激活锁:原理、实操与限制详解

1. 项目概述与核心需求解析最近在折腾旧iPhone的朋友,估计没少被“激活锁”这个拦路虎给卡住。手里拿着一台不知道Apple ID密码的二手设备,或者自己忘了密码的老机器,看着那个“激活锁”界面,感觉跟砖头没什么两样。我手头就有一台…

2026/7/6 5:40:40 阅读更多 →
ROFLPlayer:英雄联盟回放分析神器,三步解锁你的游戏复盘能力

ROFLPlayer:英雄联盟回放分析神器,三步解锁你的游戏复盘能力

ROFLPlayer:英雄联盟回放分析神器,三步解锁你的游戏复盘能力 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 还在…

2026/7/6 5:38:39 阅读更多 →
d2s-editor:暗黑破坏神2存档编辑器,轻松管理你的游戏角色数据

d2s-editor:暗黑破坏神2存档编辑器,轻松管理你的游戏角色数据

d2s-editor:暗黑破坏神2存档编辑器,轻松管理你的游戏角色数据 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾为暗黑破坏神2复杂的存档编辑而烦恼?想要调整角色属性却不知从何下手&am…

2026/7/6 5:36:39 阅读更多 →
如何用FanControl打造智能静音电脑:从零基础到专业调校的完整指南

如何用FanControl打造智能静音电脑:从零基础到专业调校的完整指南

如何用FanControl打造智能静音电脑:从零基础到专业调校的完整指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_…

2026/7/6 5:36:39 阅读更多 →
129、轻量化 Head 设计:用 Depthwise Conv 加 1×1 Conv 替代标准检测头卷积

129、轻量化 Head 设计:用 Depthwise Conv 加 1×1 Conv 替代标准检测头卷积

129、轻量化 Head 设计:用 Depthwise Conv 加 1乘1 Conv 替代标准检测头卷积 从一次显存爆炸说起 去年秋天调一个YOLOv11n的工业检测模型,输入分辨率压到640640,batch size设到32,结果RTX 3090直接OOM。排查半天,发现检测头三个分支的卷积层占了将近40%的参数量。当时项目…

2026/7/6 5:32:38 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻