<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Devifish - 个人软件技术博客</title><link>https://devifish.cn/</link><description>Recent content on Devifish - 个人软件技术博客</description><generator>Hugo</generator><language>zh-Hans</language><lastBuildDate>Fri, 31 May 2024 19:54:10 +0800</lastBuildDate><atom:link href="https://devifish.cn/index.xml" rel="self" type="application/rss+xml"/><item><title>Java垃圾回收 - ZGC</title><link>https://devifish.cn/dev/Java%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6---ZGC.html</link><pubDate>Thu, 16 May 2024 16:52:00 +0800</pubDate><guid>https://devifish.cn/dev/Java%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6---ZGC.html</guid><description>&lt;h1 id="zgc-概览"&gt;ZGC 概览&lt;/h1&gt;&#10;&lt;p&gt;Z Garbage Collector，也称为ZGC，是一种可扩展的低延迟垃圾收集器，旨在满足以下目标：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;最大暂停时间在亚毫秒级&lt;/li&gt;&#10;&lt;li&gt;暂停时间不会随着堆、live-set 或 root-set 的大小而增加&lt;/li&gt;&#10;&lt;li&gt;处理大小从8MB到16TB的堆&lt;/li&gt;&#10;&lt;li&gt;ZGC 最初是作为 JDK 11 中的一项实验性功能引入的，并在 JDK 15 中被宣布为Production Ready。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;ZGC 的核心是一个并发垃圾收集器，这意味着所有繁重的工作都在Java 线程继续执行的同时完成。这极大地限制了垃圾收集对应用程序响应时间的影响。&lt;/p&gt;</description></item><item><title>Java垃圾回收 - G1GC</title><link>https://devifish.cn/dev/Java%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6---G1GC.html</link><pubDate>Thu, 16 May 2024 16:48:00 +0800</pubDate><guid>https://devifish.cn/dev/Java%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6---G1GC.html</guid><description>&lt;h1 id="g1gc"&gt;G1GC&lt;/h1&gt;&#10;&lt;p&gt;本文转载自美团技术博客 &lt;a href="https://tech.meituan.com/2016/09/23/g1.html" target="_blank"&gt;Java Hotspot G1 GC的一些关键技术&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="g1gc-的相关概念"&gt;G1GC 的相关概念&lt;/h2&gt;&#10;&lt;p&gt;G1 GC，全称Garbage-First Garbage Collector，通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世，在JDK 7u4版本发行时被正式推出，相信熟悉JVM的同学们都不会对它感到陌生。在JDK 9中，G1被提议设置为默认垃圾收集器（JEP 248）。在官网中，是这样描述G1的:&lt;/p&gt;</description></item><item><title>Palette使用简介与实现原理</title><link>https://devifish.cn/android/Palette%E4%BD%BF%E7%94%A8%E7%AE%80%E4%BB%8B%E4%B8%8E%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86.html</link><pubDate>Mon, 08 Jan 2024 09:54:00 +0800</pubDate><guid>https://devifish.cn/android/Palette%E4%BD%BF%E7%94%A8%E7%AE%80%E4%BB%8B%E4%B8%8E%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86.html</guid><description>&lt;p&gt;&lt;code&gt;Palette&lt;/code&gt;顾名思义就是一个调色板，它根据传入的bitmap，提取出几种主体颜色，这些颜色如果设置到背景或者字体上，就能使界面色彩元素丰富的同时也不失协调。&lt;/p&gt;</description></item><item><title>Windows 服务安装Wireguard服务</title><link>https://devifish.cn/windows/Windows-%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85Wireguard%E6%9C%8D%E5%8A%A1.html</link><pubDate>Mon, 04 Dec 2023 21:34:00 +0800</pubDate><guid>https://devifish.cn/windows/Windows-%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85Wireguard%E6%9C%8D%E5%8A%A1.html</guid><description>&lt;h1 id="预配置隧道"&gt;预配置隧道&lt;/h1&gt;&#10;&lt;p&gt;可以使用以下命令安装或卸载隧道服务:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wireguard /installtunnelservice C:&lt;span class="se"&gt;\p&lt;/span&gt;ath&lt;span class="se"&gt;\t&lt;/span&gt;o&lt;span class="se"&gt;\s&lt;/span&gt;ome&lt;span class="se"&gt;\m&lt;/span&gt;yconfname.conf&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wireguard /uninstalltunnelservice myconfname&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这将创建一个名为WireGuardTunnel $ myconfname的服务，该服务可以使用标准的Windows服务管理工具 (如services.msc或sc) 进行控制。&lt;/p&gt;</description></item><item><title>AGPS定位服务器列表</title><link>https://devifish.cn/dev/AGPS%E5%AE%9A%E4%BD%8D%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%97%E8%A1%A8.html</link><pubDate>Thu, 30 Nov 2023 11:26:00 +0800</pubDate><guid>https://devifish.cn/dev/AGPS%E5%AE%9A%E4%BD%8D%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%97%E8%A1%A8.html</guid><description>&lt;ul&gt;&#10;&lt;li&gt;联通提供:&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;10.1.101.63:7275&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#10;&lt;li&gt;移动提供:&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;221.176.0.55:7275&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#10;&lt;li&gt;其他:&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;域名&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;IP地址&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;suplcn.sirf.com&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;114.80.208.5:7275&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;suplcn.sirf.com&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;114.80.208.5:7276&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;sls1.sirf.com&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;66.230.192.56:7275&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;sls2.sirf.com&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;84.40.33.25:7276&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;supl.google.com&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;74.125.113.192:72756&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;supl.google.com&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;74.125.113.192:7276&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;supl.nokia.com&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;64.14.59.165:7275&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>ElasticSearch DSL 查询</title><link>https://devifish.cn/dev/ElasticSearch-DSL-%E6%9F%A5%E8%AF%A2.html</link><pubDate>Sat, 15 May 2021 10:41:00 +0800</pubDate><guid>https://devifish.cn/dev/ElasticSearch-DSL-%E6%9F%A5%E8%AF%A2.html</guid><description>&lt;h1 id="elasticsearch-dsl-查询"&gt;ElasticSearch DSL 查询&lt;/h1&gt;&#10;&lt;p&gt;&lt;strong&gt;DSL&lt;/strong&gt;（Domain Specific Language）查询也叫做 &lt;strong&gt;Request Body&lt;/strong&gt; 查询，它比 &lt;strong&gt;URI 查询&lt;/strong&gt;更高阶，能支持更复杂的查询。&lt;/p&gt;&#10;&lt;h3 id="1分页"&gt;1，分页&lt;/h3&gt;&#10;&lt;p&gt;默认情况下，查询按照算分排序，返回前 10 条记录。&lt;/p&gt;</description></item><item><title>ElasticSearch 聚合分析</title><link>https://devifish.cn/dev/ElasticSearch-%E8%81%9A%E5%90%88%E5%88%86%E6%9E%90.html</link><pubDate>Sat, 15 May 2021 10:24:00 +0800</pubDate><guid>https://devifish.cn/dev/ElasticSearch-%E8%81%9A%E5%90%88%E5%88%86%E6%9E%90.html</guid><description>&lt;h1 id="elasticsearch-聚合分析"&gt;ElasticSearch 聚合分析&lt;/h1&gt;&#10;&lt;p&gt;ES 中的&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations.html" target="_blank"&gt;聚合分析&lt;/a&gt;（Aggregations）是对数据的统计分析功能，它的优点是&lt;strong&gt;实时性较高&lt;/strong&gt;，相比于 Hadoop 速度更快。&lt;/p&gt;&#10;&lt;h3 id="1聚合的分类"&gt;1，聚合的分类&lt;/h3&gt;&#10;&lt;p&gt;ES 中的聚合分析主要有以下 3 大类，每一类都提供了多种统计方法：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-metrics.html" target="_blank"&gt;Metrics&lt;/a&gt;：对文档字段进行统计分析（数学运算），多数 &lt;strong&gt;Metrics&lt;/strong&gt; 的输出是单个值，部分 &lt;strong&gt;Metrics&lt;/strong&gt; 的输出是多个值。&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-metrics-sum-aggregation.html" target="_blank"&gt;Sum&lt;/a&gt;：求和&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-metrics-max-aggregation.html" target="_blank"&gt;Max&lt;/a&gt;：求最大值&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-metrics-min-aggregation.html" target="_blank"&gt;Min&lt;/a&gt;：求最小值&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-metrics-avg-aggregation.html" target="_blank"&gt;Avg&lt;/a&gt;：求平均值&lt;/li&gt;&#10;&lt;li&gt;等&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-bucket.html" target="_blank"&gt;Bucket&lt;/a&gt;：一些满足特定条件的文档集合（对文档进行&lt;strong&gt;分组&lt;/strong&gt;）。&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-bucket-terms-aggregation.html" target="_blank"&gt;Terms&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-bucket-range-aggregation.html" target="_blank"&gt;Range&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;等&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-pipeline.html" target="_blank"&gt;Pipeline&lt;/a&gt;：对其它的聚合结果进行&lt;strong&gt;再聚合&lt;/strong&gt;。&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-pipeline-avg-bucket-aggregation.html" target="_blank"&gt;Avg bucket&lt;/a&gt;：求平均值&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-pipeline-max-bucket-aggregation.html" target="_blank"&gt;Max bucket&lt;/a&gt;：求最大值&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-pipeline-min-bucket-aggregation.html" target="_blank"&gt;Min bucket&lt;/a&gt;：求最小值&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-pipeline-sum-bucket-aggregation.html" target="_blank"&gt;Sum bucket&lt;/a&gt;：求和&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-pipeline-stats-bucket-aggregation.html" target="_blank"&gt;Stats bucket&lt;/a&gt;：综合统计&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-pipeline-percentiles-bucket-aggregation.html" target="_blank"&gt;Percentiles bucket&lt;/a&gt;：百分位数统计&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations-pipeline-cumulative-sum-aggregation.html" target="_blank"&gt;Cumulative sum&lt;/a&gt;：累计求和&lt;/li&gt;&#10;&lt;li&gt;等&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;一般使用聚合分析时，通常将 &lt;strong&gt;size&lt;/strong&gt; 设置为 0，表示不需要返回查询结果，只需要返回聚合结果。&lt;/p&gt;</description></item><item><title>Windows 10 1809 开启Retpoline技术</title><link>https://devifish.cn/windows/Windows-10-1809-%E5%BC%80%E5%90%AFRetpoline%E6%8A%80%E6%9C%AF.html</link><pubDate>Wed, 06 Mar 2019 15:33:00 +0800</pubDate><guid>https://devifish.cn/windows/Windows-10-1809-%E5%BC%80%E5%90%AFRetpoline%E6%8A%80%E6%9C%AF.html</guid><description>&lt;h2 id="retpoline技术原理"&gt;Retpoline技术原理&lt;/h2&gt;&#10;&lt;p&gt;retpoline是Google开发的针对Spectre变种2漏洞缓解利用技术。Spectre变种2利用CPU的间接分支预测(indirect branch predictor)功能，攻击者通过事先训练分支，让分支预测器去影响受害者进程，然后通过侧信道的方式来获取 受害者进程的信息。其实这个变种2的漏洞利用是非常困难的，Jann Horn的利用其实也是在一个老版本的kvm上，按照 Linus的说法是利用Spectre是”fairly hard”。&lt;/p&gt;</description></item><item><title>Android原生系统网络感叹号消除</title><link>https://devifish.cn/android/Android%E5%8E%9F%E7%94%9F%E7%B3%BB%E7%BB%9F%E7%BD%91%E7%BB%9C%E6%84%9F%E5%8F%B9%E5%8F%B7%E6%B6%88%E9%99%A4.html</link><pubDate>Sun, 03 Mar 2019 22:55:00 +0800</pubDate><guid>https://devifish.cn/android/Android%E5%8E%9F%E7%94%9F%E7%B3%BB%E7%BB%9F%E7%BD%91%E7%BB%9C%E6%84%9F%E5%8F%B9%E5%8F%B7%E6%B6%88%E9%99%A4.html</guid><description>&lt;h2 id="原因"&gt;原因&lt;/h2&gt;&#10;&lt;p&gt;这是Android 5.0引入的网络评估机制：就是当你连上网络后，会给目标产生204响应的服务器发送给一个请求，如果服务器返回的是状态码为204的响应，那么就 被认为网络可以访问；否则，如返回的是其他状态码，那么将被视为网络访问需要登录操作等；没有响应的话，就被认为是网络不可访问。这里的情况就是，目标服 务器不能正常访问&lt;/p&gt;</description></item><item><title>Windows 创建软&amp;硬链接</title><link>https://devifish.cn/windows/Windows-%E5%88%9B%E5%BB%BA%E8%BD%AF-%E7%A1%AC%E9%93%BE%E6%8E%A5.html</link><pubDate>Wed, 27 Feb 2019 15:00:00 +0800</pubDate><guid>https://devifish.cn/windows/Windows-%E5%88%9B%E5%BB%BA%E8%BD%AF-%E7%A1%AC%E9%93%BE%E6%8E%A5.html</guid><description>&lt;p&gt;mklink是windows系统下创建符号链接和硬链接的命令工具&#10;它是一个很好的解决文件系统问题的工具。使用它需要管理员权限&lt;/p&gt;&#10;&#13;&#10;&#13;&#10;&#13;&#10; &lt;blockquote&gt;&#13;&#10; &lt;p&gt;powershell 环境下使用cmd即可运行&lt;/p&gt;&#10;&#13;&#10; &lt;/blockquote&gt;</description></item><item><title>GIT 开启 Protocol Version 2</title><link>https://devifish.cn/dev/GIT-%E5%BC%80%E5%90%AF-Protocol-Version-2.html</link><pubDate>Thu, 27 Sep 2018 13:50:00 +0800</pubDate><guid>https://devifish.cn/dev/GIT-%E5%BC%80%E5%90%AF-Protocol-Version-2.html</guid><description>&lt;p&gt;Git 2.18版本已支持 Git 协议v2&#10;即开启该功能需要将GIT 版本升级到 2.18以上即可使用&#10;GIT Protocol Version 2 可提升大容量 多分支仓库的传输速度&#10;解决旧版本在大容量仓库下克隆速度慢的问题&#10;例如&lt;code&gt;linxu&lt;/code&gt; &lt;code&gt;android&lt;/code&gt;源码仓库&lt;/p&gt;</description></item><item><title>MIUI 卸载MSA去广告</title><link>https://devifish.cn/android/miui_uninstall_msa.html</link><pubDate>Fri, 22 Jun 2018 23:09:00 +0800</pubDate><guid>https://devifish.cn/android/miui_uninstall_msa.html</guid><description>&lt;p&gt;MSA app的包名为 com.miui.systemAdSolution&lt;/p&gt;&#10;&lt;p&gt;可使用 adb 工具卸载&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;pm uninstall --user 0 com.miui.systemAdSolution&#13;&#10;pm uninstall --user 0 com.miui.player&#13;&#10;pm uninstall --user 0 com.miui.video&#13;&#10;pm uninstall --user 0 com.miui.newhome&#13;&#10;pm uninstall --user 0 com.android.browser&#10;&lt;/code&gt;&lt;/pre&gt;</description></item></channel></rss>