第四、五章凸轮和网络爬虫+网络搜索

第四章 图论和网络爬虫

4.1 构建网络爬虫工程重点

  • 构建网络爬虫的重点

    1. BFS还是DFS

      在不考虑时间的情况下,这两种不同的搜索方法都可以在相同的时间下爬下整个静态的互联网内容,但是在现实中肯定是需要考虑时间以及互联网动态变化的。所以重点应该是如何在有限时间里最多的爬下最重要的网页,类似BFS。

      考虑爬虫的分布式结构,一个大的网络爬虫可能有成千上万台服务器组成的分布式系统,这些服务器下载完一个网站后再进入另一个网站,而不是每个网络先下载5%,在回头继续第二批,这样可以避免握手(下载服务器和网络服务器建立通信的过程)次数过多,类似DFS。

      所以并不是单纯的BFS或者DFS,而是有相对复杂的下载优先级排序方法(调度系统)。

    2. 页面分析和URL提取

      当一个网站下载后,需要提取url,加入下载队列。

    3. 记录哪个网页已经下载过-URL表

      在互联网上一个网页可能会被多个网页的超链接指向,所以在遍历时可能被多次访问,为了避免一个网页被下载多次,可以使用哈希表记录那些网

      页已经被下载过。采用哈希表的好处是,判断url是否在表中,平均只需一次(或者略多)查找。遇到未下载的网页,除了下载该网页,还要适当将这个网页的URL存入哈希表中。如果有成千上万服务器下载网页,存储这个哈希表的服务器的通信就是整个爬虫系统的瓶颈了。

  • 总结:

    因为在现实生活中图的规模都是在几千个节点以内,比如公路图,铁路图等,图的遍历比较简单,所以在图论出现后的很长时间内,即使是计算机专业的学生也体会不到这个领域的研究有什么实际用处。但是随着互联网的出现,图的遍历方法一下子有了用武之地,很多数学方法如布尔代数,布尔运算等都是这样


第五章 网络搜索

5.1 pagerank算法(度量网页质量)

  • pagerank算法中心思想

    如果一个网页被很多网页所连接,说明它收到普遍的承认和信赖,那么它的排名就高;排名高的网页的链接更可靠,需要区别对待,给予更大的权重,即网页排名高的网站贡献的链接权重大。

  • 计算网页排名的过程中需要用到网页自己的排名,布林假定所有网页排名相同,使用二维矩阵想乘并迭代计算的方法。

  • 假定向量
    B = ( b 1 , b 2 , ⋯ , b N ) ⊤ \boldsymbol{B}=\left(b_1, b_2, \cdots, b_N\right)^{\top} B=(b1,b2,,bN)

    为第一、第二……第 N N N 个网页的网页排名。知阵
    A = [ a 11 ⋯ a 1 n ⋯ a 1 M ⋯ ⋯ a m 1 ⋯ a m n ⋯ a m M ⋯ ⋯ a M 1 ⋯ a M n ⋯ a M M ] A=\left[\begin{array}{ccccc} a_{11} & \cdots & a_{1 n} & \cdots & a_{1 M} \\ \cdots & & & & \cdots \\ a_{m 1} & \cdots & a_{m n} & \cdots & a_{m M} \\ \cdots & & & & \cdots \\ a_{M 1} & \cdots & a_{M n} & \cdots & a_{M M} \end{array}\right] A= a11am1aM1a1namnaMna1MamMaMM

    为网页之间链接的数目. 其中 a m n a_{m n} amn 代表第 n n n 个网页指问第 m m m 个网页的链接数。 A A A 是已知的, B B B 是末知的, 是我们所要计算的。

    初始假设:所有网页的排名都是 1 / N 1 / N 1/N, 即
    B 0 = ( 1 N , 1 N , ⋯ , 1 N ) 。  \boldsymbol{B}_0=\left(\frac{1}{N}, \frac{1}{N}, \cdots, \frac{1}{N}\right) \text { 。 } B0=(N1,N1,,N1)  
    假定 B i B_i Bi 是第 i i i 论连代的结果,那么
    B i = A ⋅ B i − 1 \boldsymbol{B}_i=\boldsymbol{A} \cdot \boldsymbol{B}_{i-1} Bi=ABi1

  • 显然通过公式简单 (但是计算量非常大) 的知阵运算, 可以得到 B 1 , B 2 , ⋯ ⋯ B_1, B_2, \cdots \cdots B1,B2,⋯⋯ 可以证明 B i \boldsymbol{B}_i Bi 最终会收敛, 即 B i B_i Bi 无限趋近于 B \boldsymbol{B} B, 此时: B = B × A ± \boldsymbol{B}=\boldsymbol{B} \times \boldsymbol{A}_{ \pm} B=B×A±因此. 当两炏㑢代的结果 B i \boldsymbol{B}_i Bi B i − 1 \boldsymbol{B}_{i-1} Bi1 之间的差昇非常小, 接近于零时, 停止迭代运算, 算法结束。一般来进, 只要 10 次左右的造代基本上就收敛了。

    由于网页之间链接的数量相比互联网的规模非常稀疏, 因此计算网页的网页排名也需要对零概率或者小概率事件进行平滑处理。网页的排名是个一维向量, 对它的平清处理只能利用一个小的常数 α D \alpha_{\mathrm{D}} αD 这时, 公式 (1 变成
    B i = [ α N ⋅ I + ( 1 − α ) A ] ⋅ B i − 1 \boldsymbol{B}_i=\left[\frac{\alpha}{N} \cdot I+(1-\alpha) A\right] \cdot \boldsymbol{B}_{i-1} Bi=[NαI+(1α)A]Bi1

    其中 N N N 是互联网网页的数教, α \alpha α 是一个 (较小的) 常数, I I I 是单位矩阵。网页排名的计算主要是矩阵相乘, 这种计算很容易分解成许多小任务.在多台计算机上并行处理。


5.2 TF-IDF(度量网页与查询相关性)

5.2.1 影响搜索引擎的因素

  • 可以归纳为四大类
    1. 完备的索引。俗话说巧姻难为无米之㰠, 如果一个网页不在索引中, 那么再好的算法也找不到。
    2. 对网页质量的度量, 比如 PageRank。当然, 正如在前面一章中介绍的那样, 现在来看, PageRank 的作用比 10 年前已经小了很多,今天对网页质量的衝量是全方位的, 比如对网页内容权威性的度量,一些八卦网站的 PageRank 可能很高, 但是它们的内容权威性很低。
    3. 用户偏好。这一点也很容易理解,因为不同用户的㔛好不同,因此一个好的搜害引繁会针对不同用户, 对相同的搜索给出不同的排名。
    4. 确定一个网页和某个查询的相关性的方法。

5.2.2 TF( Term Frequency:单文本词频)

  • 度量网页和某个查询的相关性有个简单的办法,即直接使用各个关键词在网页中出现的总词频。
    T F = 关键词出现次数 网页总字数 TF=\frac{\text{关键词出现次数}}{\text{网页总字数}} TF=网页总字数关键词出现次数

    如果一个查询包含N个关键词 w 1 , w 2 , ⋯ , w N w_1, w_2, \cdots, w_N w1,w2,,wN, 它们在一个特定网页中的词频分别是: T F 1 , T F 2 , ⋯ , T F N T F_1, T F_2, \cdots, T F_{N} TF1,TF2,,TFN。那么, 这个直询和该网页的相关性 (即相似度) 就是:
    T F 1 + T F 2 + . . . . . + T F N TF_1+TF_2+.....+TF_N TF1+TF2+.....+TFN
    如搜索“原子能的应用”,假设网页总字数1000字,“原子能”出现2次,“的”出现35次,“应用”出现5次,则TF为
    0.002 + 0.035 + 0.005 = 0.042 0.002+0.035+0.005=0.042 0.002+0.035+0.005=0.042

    漏洞

    1. 停止词“的”,对确定网页主题几乎无用,但却占词频80%
    2. “原子能”是个很专业的词,权重应该比“应用”更重要,但是词频却小于应用
  • 因此我们需要给汉语中的每个词设置一个权重,每个词的权重应满足

    1. 一个词预测主题的能力越强, 权重越大, 反之, 权重越小。在网页中看到 “原子能” 这个词, 或多或少能了解网页的主题。而看到 “应用”一词, 则对主题基本上还是一无所知。因此, “原子能”的权重就应该比“应用”大。
    2. 停止词的权重为零。

    很容易发现, 如果一个关键词只在很少的网页中出现, 通过它就容易锁定搜索目标, 它的权重也就应该大。反之, 如果一个词在大量网页中出现,看到它仍然不很清楚要找什么内容, 它的权重就应该小。


5.2.3 IDF(Inverse Document Frequency:逆文本词频指数)

  • 在信息检索中,使用最多的权重就是IDF。嘉定一个关键词 W W W D W D_W DW个网页中出现过,那么 D W D_W DW越大, W W W权重越小,反之亦然
    I D F = log ⁡ D D W IDF=\log {\frac{D}{D_W}} IDF=logDWD
    其中D为所有网页数。

  • 所谓IDF的概念为在一个特定条件下关键词的概率分布的交叉熵。

5.2.4 TF-IDF

  • TF-IDF 被公认为是信息检索中最重要的发明
    T F − I D F = T F 1 ⋅ I D F 1 + T F 2 ⋅ I D F 2 + . . . + T F N ⋅ I D F N TF-IDF = TF_1\cdot IDF_1 + TF_2\cdot IDF_2 +...+TF_N\cdot IDF_N TFIDF=TF1IDF1+TF2IDF2+...+TFNIDFN

  • 如搜索“原子能的应用”,假设网页总字数1000字,“原子能”出现2次,“的”出现35次,“应用”出现5次,则TF为
    T F 原子能 = 0.002 T F 的 = 0.035 T F 应用 = 0.005 \begin{aligned} &TF_{原子能}=0.002\\ &TF_{的}=0.035\\ &TF_{应用}=0.005\\ \end{aligned} TF原子能=0.002TF=0.035TF应用=0.005

    假定中文网页数是 D = 10 D=10 D=10 亿, 停止词 “的”在所有的网页中都出现, 即 D w = 10 D_w=10 Dw=10 亿, 那么它的
    I D F 的 = log ⁡ ( 10 亿 / 10 亿 ) = log ⁡ ( 1 ) = 0 IDF_{的}=\log (10 亿 / 10亿 )=\log (1)=0 IDF=log(10亿/10亿)=log(1)=0
    假如专用词 “原子能” 在 200 万个网页中出现, 即 D w = 200 D_w=200 Dw=200 万, 则它的权重
    I D F 原子能 = log ⁡ ( 500 ) = 8.96 I D F_{原子能}=\log (500)=8.96 IDF原子能=log(500)=8.96
    又假定通用词 “应用”出现在五亿个网页中, 它的权重
    I D F 应用 = log ⁡ ( 2 ) = 1 I D F_{应用}=\log (2)=1 IDF应用=log(2)=1
    , 则只有 1 。也就是说, 在网页中找到一个 “原子能” 的命中率 (Hits) 相当于找到九个 “应用” 的命中率。利用 IDF, 上述相关性计算的公式就由词频的加权求和
    T F − I D F = T F 1 ⋅ I D F 1 + T F 2 ⋅ I D F 2 + . . . + T F N ⋅ I D F N = T F 原子能 ⋅ I D F 原子能 + T F 的 ⋅ I D F 的 + T F 应用 ⋅ I D F 应用 = 0.002 ⋅ 8.96 + 0.035 ⋅ 0 + 0.005 ⋅ 1 = 0.01798 + 0 + 0.005 = 0.02292 \begin{aligned} TF-IDF &= TF_1\cdot IDF_1 + TF_2\cdot IDF_2 +...+TF_N\cdot IDF_N\\ &=TF_{原子能}\cdot IDF_{原子能}+TF_{的}\cdot IDF_{的}+TF_{应用}\cdot IDF_{应用}\\ &=0.002 \cdot 8.96+0.035\cdot 0+0.005\cdot1\\ &=0.01798+0+0.005\\ &=0.02292 \end{aligned} TFIDF=TF1IDF1+TF2IDF2+...+TFNIDFN=TF原子能IDF原子能+TFIDF+TF应用IDF应用=0.0028.96+0.0350+0.0051=0.01798+0+0.005=0.02292
    如果结合网页排名算法如PageRank,那么给定一个查询,有关网页的综合排名大致由相关性和网页排名的乘积决定。


5.2.5 TF-IDF的信息论依据

  • 后续使用: w w w为关键词,N为整个语料库,D为中文网页数, D w D_w Dw w w w出现的网页/文献个数,
    T F ( w ) = 关键词w出现次数 当前网页 / 文献总字数 TF(w)=\frac{\text{关键词w出现次数}}{当前网页/文献总字数} TF(w)=当前网页/文献总字数关键词w出现次数

  • 一个查询中每一个关键词 w w w 的权重应该反映这个词对查询来讲提供了多少信息。一个简单的办法就是用每个词的信息量作为它的权重,
    I ( w ) = − P ( w ) log ⁡ P ( w ) = − T F ( w ) N log ⁡ T F ( w ) N = T F ( w ) N log ⁡ N T F ( w ) ∵ N 为常数 ∴ = T F ( w ) log ⁡ N T F ( w ) \begin{aligned} I(w) & =-P(w) \log P(w) \\ & =-\frac{T F(w)}{N} \log \frac{T F(w)}{N}\\ &=\frac{T F(w)}{N} \log \frac{N}{T F(w)}\\ \because~~&N为常数\\ \therefore~~&=T F(w) \log \frac{N}{T F(w)}\\ \end{aligned} I(w)    =P(w)logP(w)=NTF(w)logNTF(w)=NTF(w)logTF(w)NN为常数=TF(w)logTF(w)N

    上述公式有一个缺陷:两个词出现的频率 TF 相同, 一个是某篇特定文章中的常见词, 而另外一个词是分散在多篇文章中, 那么显然第一个词有更高的分辨率, 它的权重应该更大。显然, 更好的权重公式应该反映出关键词的分辨率。

    如果做一些理想的假设,

    1. 每个文献大小基本相同, 均为 M M M 个词, 即 M = N D = ∑ w T F ( w ) D M=\frac{N}{D}=\frac{\sum_w T F(w)}{D} M=DN=DwTF(w)
    2. 一个关键词在文献一旦出现, 不论次数多少, 贡献都等同, 这样一个词要么在一个文献中出现 c ( w ) = T F ( w ) D ( w ) c(w)=\frac{T F(w)}{D(w)} c(w)=D(w)TF(w) 次, 要么是零。注意, c ( w ) < M c(w)<M c(w)<M

    ∵ N = M D T F ( w ) = c ( w ) ⋅ D ( w ) ∴ I ( w ) = T F ( w ) log ⁡ N T F ( w ) = T F ( w ) log ⁡ M D c ( w ) D ( w ) = T F ( w ) log ⁡ ( D D ( w ) M c ( w ) ) = T F ( w ) log ⁡ ( D D ( w ) ) − T F ( w ) log ⁡ ( M c ( w ) ) ∵ I D F = log ⁡ D D W ∴ = T F ( w ) ⋅ I D F ( W ) − T F ( w ) log ⁡ ( M c ( w ) ) \begin{aligned} \because~~&N=MD\\ &TF(w)=c(w)\cdot D(w)\\ \therefore~~ I(w)&=T F(w) \log \frac{N}{T F(w)}\\ & =TF(w) \log \frac{M D}{c(w) D(w)} \\ & =TF(w) \log \left(\frac{D}{D(w)} \frac{M}{c(w)}\right)\\ & =TF(w) \log \left(\frac{D}{D(w)}\right)-TF(w) \log \left(\frac{M}{c(w)}\right)\\ \because~~&IDF=\log {\frac{D}{D_W}}\\ \therefore~~& =TF(w)\cdot IDF(W)-TF(w) \log \left(\frac{M}{c(w)}\right) \end{aligned}     I(w)    N=MDTF(w)=c(w)D(w)=TF(w)logTF(w)N=TF(w)logc(w)D(w)MD=TF(w)log(D(w)Dc(w)M)=TF(w)log(D(w)D)TF(w)log(c(w)M)IDF=logDWD=TF(w)IDF(W)TF(w)log(c(w)M)

    这样, 我们看到 TF-IDF 和信息量之间的差异就是公式 中的第二项。因为 c ( w ) < M c(w)<M c(w)<M, 所以第二项大于零, 它是 c ( w ) c(w) c(w) 的递减函数。把上面的公式重写成
    T F − I D F ( w ) = I ( w ) − T F ( w ) log ⁡ M c ( w ) T F-I D F(w)=I(w)-T F(w) \log \frac{M}{c(w)} TFIDF(w)=I(w)TF(w)logc(w)M

    可以看到, 一个词的信息量 I ( w ) I(w) I(w) 越多, TF-IDF 值越大; 同时 w w w 命中的文献中 w w w 平均出现的次数越多, 第二项越小, TF-IDF 也越大。这些结论和信息论完全相符。

  • TF-IDF 是对搜索关键词的重要性的度量, 并且具备很强的理论根据。因此, 即使是对搜索不是很精通的人, 直接采用 TF-IDF, 效果也不会太差。现在各家搜索引擎对关键词重要性的度量, 都在 TF-IDF 的基础上做了一定的改进和微调。但是, 在原理上与 TF-IDF 相差不远。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/892209.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计hadoop+spark知网文献论文推荐系统 知识图谱 知网爬虫 知网数据分析 知网大数据 知网可视化 预测系统 大数据毕业设计 机器学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

LabVIEW四旋翼飞行器姿态监测系统

四旋翼飞行器姿态监测系统是一个集成了高度、速度、俯仰角与滚转角数据采集与分析的系统&#xff0c;提高飞行器在复杂环境中的操作精确度与安全性。系统利用LabVIEW平台与硬件传感器相结合&#xff0c;实现实时数据处理与显示&#xff0c;有效地提升了四旋翼飞行器的监测与控制…

3D机器视觉的类型、应用和未来趋势

3D相机正在推动机器视觉市场的增长。很多制造企业开始转向自动化3D料箱拣选&#xff0c;专注于使用3D视觉和人工智能等先进技术来简化操作并减少开支。 预计3D相机将在未来五年内推动全球机器视觉市场&#xff0c;这得益于移动机器人和机器人拣选的强劲增长。到 2028 年&#…

JavaFX基础之环境配置,架构,FXML

文章目录 1 JavaFX1.1 简介1.2 环境准备1.2.1 手动管理依赖1.2.2 maven或Gradle管理 1.3 JavaFX 架构1.3.1 JavaFX 架构图1.3.2 JavaFX组件1.3.2.1 舞台1.3.2.2 场景1.3.2.3 控件1.3.2.4 布局1.3.2.5 图表1.3.2.6 2D图形1.3.2.7 3D图形1.3.2.8 声音1.3.2.9 视频 1.4 简单使用1.…

php命名空间

什么是命名空间 从广义上来说&#xff0c;命名空间是一种封装事物的方法&#xff0c;在很多地方都可以见到这种抽象概念。 例如&#xff0c;在操作系统中目录用来将相关文件分组&#xff0c;对于目录中的文件来说&#xff0c;它就扮演了命名空间的角色。 具体举个例子&#xf…

【Unity3D】导出Android项目以及Java混淆

Android Studio 下载文件归档 | Android Developers Android--混淆配置&#xff08;比较详细的混淆规则&#xff09;_android 混淆规则-CSDN博客 Unity版本&#xff1a;2019.4.0f1 Gradle版本&#xff1a;5.6.4&#xff08;或5.1.1&#xff09; Gradle Plugin版本&#xff…

腾讯云AI代码助手编程挑战赛-每日一句

一、作品简介 “每日一句”是一个基于Python的图形用户界面&#xff08;GUI&#xff09;应用程序&#xff0c;旨在为用户提供随机的中英文名言警句。它利用腾讯云AI代码助手辅助开发&#xff0c;为用户带来便捷、高效的阅读体验。 二、技术架构 1. 编程语言&#xff1a;使用P…

【AI工具】PDFMathTranslate安装使用

用了一天时间&#xff0c;安装并使用了PDFMathTranslate这款PDF文档翻译工具。 PDFMathTranslate是能够完整保留排版的 PDF 文档全文双语翻译项目&#xff0c;之前使用文档翻译的时候&#xff0c;对于论文这种类型的文章&#xff0c;由于图表和公式太多&#xff0c;文档翻译经常…

conda 批量安装requirements.txt文件

conda 批量安装requirements.txt文件中包含的组件依赖 conda install --yes --file requirements.txt #这种执行方式&#xff0c;一遇到安装不上就整体停止不会继续下面的包安装。 下面这条命令能解决上面出现的不执行后续包的问题&#xff0c;需要在CMD窗口执行&#xff1a; 点…

网络安全图谱以及溯源算法

​ 本文提出了一种网络攻击溯源框架&#xff0c;以及一种网络安全知识图谱&#xff0c;该图由六个部分组成&#xff0c;G <H&#xff0c;V&#xff0c;A&#xff0c;E&#xff0c;L&#xff0c;S&#xff0c;R>。 1|11.知识图 ​ 网络知识图由六个部分组成&#xff0c…

上汽乘用车研发流程

目的 最近刚入职主机厂&#xff0c;工作中所提到各个阶段名称与之前在供应商那边不一致&#xff0c;概念有点模糊&#xff0c;所以打算学习了解一番 概念 术语 EP: enginerring prototype car 工程样车 Mule Car: 骡子车 Simulator Car&#xff1a;模拟样车 PPV&#xff1a;…

封装/前线修饰符/Idea项目结构/package/impore

目录 1. 封装的情景引入 2. 封装的体现 3. 权限修饰符 4. Idea 项目结构 5. package 关键字 6. import 关键字 7. 练习 程序设计&#xff1a;高内聚&#xff0c;低耦合&#xff1b; 高内聚&#xff1a;将类的内部操作“隐藏”起来&#xff0c;不需要外界干涉&#xff1b…

计算机网络 (23)IP层转发分组的过程

一、IP层的基本功能 IP层&#xff08;Internet Protocol Layer&#xff09;是网络通信模型中的关键层&#xff0c;属于OSI模型的第三层&#xff0c;即网络层。它负责在不同网络之间传输数据包&#xff0c;实现网络间的互联。IP层的主要功能包括寻址、路由、分段和重组、错误检测…

【W800】UART 的使用与问题

1.开发环境 OS: Windows 11开发板&#xff1a;海凌科 HLK-W800-KIT-PROSDK: W80X_SDK_v1.00.10IDE: CSKY Development Kit 2.UART 使用 在 SDK 中创建文件 uart_test.h 和 uart_test.c&#xff0c;然后在 CDK 项目中添加这两个文件&#xff0c;CDK 会自动 include 头文件。 …

万界星空科技质量管理QMS系统具体功能介绍

一、什么是QMS系统&#xff0c;有什么价值&#xff1f; 1、QMS 系统即质量管理系统&#xff08;Quality Management System&#xff09;。 它是一套用于管理和控制企业产品或服务质量的集成化体系。 2、QMS 系统的价值主要体现在以下几个方面&#xff1a; 确保产品质量一致性…

【C++】B2099 矩阵交换行

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述题目描述输入格式输出格式输入输出样例输入 #1输出 #1 &#x1f4af;题目分析&#x1f4af;不同解法分析我的做法实现步骤&#xff1a;优点&#xff1a;不足&#…

Tableau数据可视化与仪表盘搭建-数据连接

目录 连接本地文件 课程操作 连接方式&#xff08;实时/数据提取&#xff09; 保存工作簿 筛选器 数据处理 连接数据有三种类型 第一种&#xff0c;连接到本地文件&#xff0c;例如Excel&#xff0c;csv&#xff0c;JSON等 第二种&#xff0c;连接到数据库&#xff0c;例…

系统日志优化---自定义springboot-starter日志组件供各个服务使用

在优化项目时发现各个微服务都有各自的接口调用日志逻辑&#xff0c;比如每个服务都定义一个aop类拦截&#xff0c;十分冗余&#xff0c;其实是可以做成starter被各个服务引用使用&#xff0c;前提要先了解一下springboot自动装配原理 创建springboot工程&#xff0c;如果是jdk…

Android V QCOM GPS | APN for LocationService

问题 在高通平台上验证 GPS 功能流程时候,block 在 APN 数据库的查询。经查,发现高通有内部实现的 LocationService(aosp源码和mtk都没有的类) 包含查询 TelephonyProvider 数据库的逻辑,直接原因是查询到 APN Protocol 不符合预期,直接fail。 关于 Android APN 数据列的…

基于 Apache Commons Pool 实现的 gRPC 连接池管理类 GrpcChannelPool 性能分析与优化

基于 Apache Commons Pool 实现的 gRPC 连接池管理类 GrpcChannelPool 性能分析与优化 1. 输出关键信息的代码示例 日志记录方法 使用以下代码记录连接池的关键信息&#xff0c;帮助分析连接池的状态和性能瓶颈&#xff1a; import org.apache.commons.pool2.impl.GenericO…