- 博客(541)
- 资源 (32)
- 收藏
- 关注

翻译 6 CPU Features For Performance Analysis
性能分析的最终目标是确定瓶颈并找到与之相关联的代码位置。不幸的是,没有预定的步骤可以遵循,因此可以以许多不同的方式进行处理。通常,对应用程序进行分析可以快速了解应用程序的热点。有时,这是开发人员需要做的一切来修复性能低效。尤其是高级性能问题通常可以通过分析揭示。例如,考虑这样一种情况,你使用感兴趣的特定函数对应用程序进行分析。根据你对应用程序的心理模型,你预计该函数是不经常使用的。但是,当你打开分析文件时,你会发现它消耗了大量的时间并且被调用了很多次。基于这些信息,你可以应用缓存或记忆化等技术来减少对该函
2023-08-01 23:35:40
886

原创 lighteffect架构优化详细设计文档
2]将framework和vendor目录下的LedManager类统一,通过aidl增加接口供apk和系统调用。原因:由于系统中兼容了lighteffect和lighteffect2,写代码时只记了一个,出现代码bug。强制关闭LED时,由于疏忽只杀了lighteffect进程,忘记杀lighteffect2进程。从图1-1我们可以看出,整个系统对于LED的控制比较混乱,很容易出现灯效控制混乱的结果。最后,Apk可直接跨过Framework层调用Hal层的lighteffect控制灯效。
2023-04-28 20:38:34
883

原创 UML顺序图规范
1 生命线一般为虚线2 消息(1)创始消息实心圆开头,实心箭头(2)同步消息实心箭头3 控制期表示阻塞调用4 返回值5 自身消息6 创建实例虚线实心箭头,新创建的对象实例画在创建时的高度上7 销毁对象用<<destroy>>和X表示对象的销毁8 图框常见的图框操作符:alt:选择性的片段,用于表示保护信息表达的互斥逻辑。loop:用于表示保护信息为真的循环片段。loop(n)指明循环的次数。opt:当保护信息为...
2021-10-31 13:28:13
1804

原创 [Android P]OpenCamera详细分析(Camera2+Hal3)
因为工作涉及到Android Camera系统的问题,本文就整理了在Android P上讲解OpenCamera比较详细的文章,结合Andriod P源码,以架构图、UML顺序图、UML类图和关键代码走读的方式,从App层、Framework层、Hal层详细分析了OpenCamera的流程。如有分析的不对的地方,欢迎大家指正~注意:Camera系统架构采用Camera2+Hal3。参考博客:Android Camera2+HAL3架构_既不是天才,便做那疯子!-CSDN博客[A
2021-10-23 23:00:21
9481
4

原创 gdb如何从堆栈破坏的堆栈中定位问题(ucontext_t)
对于大多数堆栈破坏的情况没有有效方法,只能缩小问题代码范围,不断测试复现,找出容易复现的方式,一步步解决。但是有一种情况,如果你的堆栈破坏了,但是有ucontext_t进程上下文信息,那么是可以继续分析的!本文介绍了堆栈破坏但有ucontext_t进程上下文信息的前提下用gdb调试定位问题的过程。(1)使用带有debug信息的动态库(SDL,X11)todoCSDN文章链接(2)查看log的Stack traceSegmentation fault(Invalid ...
2021-04-05 12:21:52
3453

原创 3 vim-config软件包
vim是linux系统中的编辑工具,配置好vim可以大大提高我们的工作效率。在使用vim时我们常常需要自己配置vimrc,安装需要的插件等。这一系列的配置比较繁琐,很多人望而生畏,于是渐渐放弃vim。最近看到一个博主关于[vi/vim使用进阶]的博客,学习后用起来非常方便。但弊端是配置的插件繁多,快捷键繁多,不易记忆,一旦更换电脑环境需要重新配置。为此,我将[vi/vim使用进阶]中的vim配置做成了软件包(vim-config)托管在Github上,到了不同环境,只需要./install.sh便可一键配置
2020-12-20 18:14:24
1544
4

原创 高通QFIL刷机:高通sdm845_la2.0用QFIL软件meta_build和flat_build刷机
[1 代码准备](i)amss_standard_oem:高通源码(ii)test_device:amss_standard_oem对应的二进制文件(高通已经编译)(iii)caf:高通源码对应的谷歌源码[2 编译源码]将amss_standard_oem/LINUX/android/vendor/qcom目录下的proprietary文件夹拷贝到caf/vendor...
2018-10-25 20:23:27
23224
13

原创 OpenCamera流程详细分析(Camera1+Hal1)
以本文记录下学习sdm660 camera模块的总结:首先特别感谢https://blog.csdn.net/armwind博主的文章(一)目录一. android camera系统架构图二. opencamera(1)Bn Bp对象的理解(2)回调函数的注册,监听(3)aidl—ICameraService,hidl--ICameraDevice三. takepic...
2018-10-15 11:19:26
5074
1
翻译 Chapter 12 Depth estimation
12.1极点几何 75312.1.1整改 75512.1.2平面扫描 75712.2稀疏对应 76012.2.1三维曲线和剖面 76012.3密集通信 76212.3.1相似性度量 76412.4地方方法 76612.4.1亚像素估计和不确定性 76812.4.2应用:基于立体声的头部跟踪 76912.5全球优化 77112.5.1动态规划 77412.5.2基于分割的技术 77512.5.3应用:Z键和背景替换 77712.6深度神经网络 778
2025-05-03 17:59:46
23
翻译 Chapter 11 Structure from motion and SLAM
11.1几何内禀校准 68511.1.1消失点 68711.1.2应用:单视图计量 68811.1.3旋转运动 68911.1.4径向畸变 69111.2姿态估计 69311.2.1线性算法 69311.2.2迭代非线性算法 69511.2.3应用:位置识别 69811.2.4三角测量 70111.3从运动中获得的双帧结构 70311.3.18、7和5点算法 70311.3.2特殊动线和结构 70811.3.3投影(未校准)重建 71011.3.4自校
2025-05-03 13:35:08
30
翻译 Chapter 10 Computational photography
10.1光度校准 61010.1.1辐射响应函数 61110.1.2噪声水平估计 61410.1.3暗角 61510.1.4光学模糊(空间响应)估计 61610.2高动态范围成像 62010.2.1色调映射 62710.2.2应用:闪光灯摄影 63410.3超分辨率、去噪和模糊消除 63710.3.1彩色图像去马赛克 64610.3.2镜头模糊(散景) 64810.4图像抠像和合成 65010.4.1蓝屏遮罩 65110.4.2自然图像遮罩 65310
2025-05-03 01:11:04
29
翻译 Chapter 9 Motion estimation
9.1翻译对齐 5589.1.1分层运动估计 5629.1.2基于傅立叶的对齐 5639.1.3逐步完善 5669.2参数运动 5709.2.1应用:视频稳定 5739.2.2基于样条线的运动 5759.2.3应用:医学图像配准 5779.3光流 5789.3.1深度学习方法 5849.3.2应用:卷帘窗防晃动 5879.3.3多帧运动估计 5879.3.4应用:视频降噪 5899.4分层运动 5899.4.1应用:帧插值 5939.4.2透明层和
2025-05-02 23:48:43
20
翻译 Chapter 8 Image alignment and stitching
8.1双向比对 5038.1.1使用最小二乘法进行2D对齐 5048.1.2应用:全景 5068.1.3迭代算法 5078.1.4稳健的最小二乘法和RANSAC 5108.1.5 3D对齐 5138.2图像拼接 5148.2.1参数化运动模型 5168.2.2应用:白板和文档扫描 5178.2.3旋转全景图 5198.2.4缺口闭合 5208.2.5应用:视频摘要和压缩 5228.2.6圆柱坐标和球坐标 5238.3全球协调 5268.3.1捆绑调整
2025-05-02 22:39:36
17
翻译 Chapter 7 Feature detection and matching
7.1点和斑点 4197.1.1特征检测器 4227.1.2特征描述符 4347.1.3特征匹配 4417.1.4大规模匹配和检索 4487.1.5特征跟踪 4527.1.6应用:性能驱动动画 4547.2边缘和轮廓 4557.2.1边缘检测 4567.2.2轮廓检测 4617.2.3应用:边缘编辑和增强 4657.3剖面跟踪 4667.3.1蛇与剪刀 4677.3.2水平集 4747.3.3应用:轮廓跟踪和转描 4767.4线与消失点 477
2025-05-02 21:10:11
40
翻译 Chapter 6 Recognition
6.1实例识别 3466.2图像分类 3496.2.1基于特征的方法 3506.2.2深度网络 3586.2.3应用:视觉相似性搜索 3606.2.4人脸识别 3636.3目标检测 3706.3.1人脸检测 3716.3.2行人检测 3766.3.3一般对象检测 3796.4语义分割 3876.4.1应用:医学图像分割 3906.4.2实例分割 3916.4.3全景分割 3926.4.4应用:智能照片编辑 3946.4.5姿态估计 3956.5
2025-05-02 16:40:14
32
翻译 Chapter 5 Deep Learning
5.1监督学习 2395.1.1最近邻 2415.1.2贝叶斯分类 2435.1.3逻辑回归 2485.1.4支持向量机 2505.1.5决策树和森林 2545.2无监督学习 2575.2.1聚类 2575.2.2K均值和高斯混合模型 2595.2.3主成分分析 2625.2.4流形学习 2655.2.5半监督学习 2665.3深度神经网络 2685.3.1重量和层数 2705.3.2激活函数
2025-04-26 22:26:12
34
翻译 Chapter 4 Model fitting and optimization
4.1散点数据插值 1944.1.1径向基函数 1964.1.2过拟合和欠拟合 1994.1.3稳健的数据拟合 2024.2变分法和正则化 2044.2.1离散能量最小化 2064.2.2总变异 2104.2.3双侧求解器 2104.2.4应用:交互式着色 2114.3马尔可夫随机场 2124.3.1条件随机场 2224.3.2应用:交互式分割 2274.4其他阅读材料 2304.5练习 232图4.1数据插值和全局优化示例:(a)散点数据插值(曲线拟
2025-04-08 22:41:56
38
翻译 Chapter 3 Image processing
3.1点位操作员 1093.1.1像素变换 1113.1.2颜色变换 1123.1.3合成和遮罩 1133.1.4直方图均衡化 1153.1.5应用:音调调整 1193.2线性滤波 1193.2.1可分离过滤 1243.2.2线性滤波器示例 1253.2.3带通和可调滤波器 1273.3更多社区运营商 1313.3.1非线性滤波 1323.3.2双边滤波 1333.3.3二值图像处理 1383.4
2025-04-06 23:24:14
46
翻译 Chapter 2 Image formation
2.1几何基本元素和变换 362.1.1 2D变换 402.1.2三维变换 432.1.3 3D旋转 452.1.4 3D到2D投影 512.1.5镜头畸变 632.2光度图像形成 662.2.1照明 662.2.2反射率和阴影 672.2.3光学 742.3数码相机 792.3.1取样和混叠 842.3.2颜色 872.3.3压缩 982.4其他阅读材料 1012.5练习 102图2.1
2025-04-06 11:56:22
77
翻译 Chapter 1 Introduction
1.1什么是计算机视觉? 31.2简史 101.3书籍概述 221.4样本教学大纲 301.5符号说明 311.6其他阅读材料 31图1.2计算机视觉算法及其应用的一些示例。(a)面部检测算法,结合基于颜色的衣物和头发检测算法,可以定位并识别这幅图像中的个体(Sivic、Zitnick和Szeliski 2006)©2006斯普林格。(b)对象实例分割可以在复杂场景中区分每个人和物体(He、Gkioxari (et al.2017)©201
2025-04-06 00:26:04
15
翻译 Chapter 18 Looking Forward and Back
序列公司意识到,它能够迅速培训新工程师掌握并行计算的奥秘是不同寻常的,因此出版了一本精简的书籍,凝聚了公司的并行编程智慧[Seq88],这与几年前发表的两篇开创性论文[BK85,Inm85]相辅相成。保罗开始提问时指出,在1991年至2006年的15年间,一个并行系统的成本已经从一栋房子的价格降到了一辆中档自行车的价格,显然在未来15年内,直到2021年,还有很大的降价空间。因此,他发表了一段简短的、不置可否的讲话。对于编辑和撰稿人来说,这是第二版的终点,但对于那些愿意加入的人来说,这也是第三版的起点。
2025-04-05 17:17:05
39
翻译 Chapter 17 Conflicting Visions of the Future
预测是非常困难的,尤其是关于未来的。尼尔斯·玻尔本章呈现了一些关于并行编程未来的相互冲突的愿景。这些愿景中哪一个会成为现实尚不清楚,事实上,甚至不清楚它们是否会实现。然而,这些愿景都很重要,因为每个愿景都有其忠实的支持者,如果足够多的人对某件事深信不疑,你将不得不面对它对其支持者的思想、言语和行为产生的影响。此外,一个或多个这样的愿景最终将会实现。但大多数都是虚假的。分辨出哪些是哪些,你就会变得富有[Spi77]!因此,以下章节将概述事务内存、硬件事务内存、回归测试中的形式验证以及并行函数编程。但首先,我们
2025-04-05 14:27:45
61
翻译 Chapter 16 Ease of Use
同样地,对于线程1来说,要被阻塞,其他线程必须已经获取了元素2的锁,依此类推,直到线程N - 1,它获取了元素N - 1的锁。简而言之,如果你正在开发一个旨在帮助你完全不了解的人的软件项目,当这些人对你的项目提出批评时,你不必感到惊讶。两种传统的方法是按地址顺序获取锁,或者按照列表中出现的顺序获取锁,这样当头部作为被锁定的两个元素之一时,总是先获取头部的锁。17.明显的用法是错误的。要实现这一点,从零开始给列表中的元素编号,起始为表头,结束于列表最后一个元素(即表头前的一个元素,因为列表是循环的)。
2025-04-05 13:42:41
14
翻译 Chapter 15 Advanced Synchronization:Memory Ordering
进步的艺术是在变化中保持秩序,在秩序中保持变化。怀德海因果关系和排序是非常直观的,黑客通常对这些概念有很强的把握。这些直觉在编写、分析和调试顺序代码时不仅非常有用,而且在使用诸如锁定等标准互斥机制的并行代码时也非常有用。不幸的是,这些直觉在代码中完全崩溃,而是使用弱有序的原子操作和内存障碍。这类代码的一个示例实现了标准互斥机制,而另一个示例实现了使用较弱同步的快速路径。尽管侮辱了直觉,但有些人认为弱点是一种美德。美德或缺点,这一章将帮助您理解内存顺序,通过实践,这将足以实现同步原语和性能关键的快速路径。第1
2025-03-31 00:44:00
24
翻译 Chapter 14 Advanced Synchronization
如果一点知识是一件危险的事情,想想你可以用大量的知识做些什么吧!未知的本章介绍了用于无锁算法和并行实时系统的同步技术。尽管无锁算法在面对极端要求时可以非常有用,但它们并不是灵丹妙药。例如,如第5章末尾所指出的,在考虑无锁算法之前,您应该彻底应用分区、批处理和经过良好测试的打包弱api(参见第8章和第9章)。但在完成所有这些之后,您仍然会发现自己需要本章中描述的高级技术。为此,第14.1节总结了迄今为止用于避免锁的技术,而第14.2节给出了非阻塞同步的简要概述。内存排序也很重要,但它保证了自己的章节,即第15
2025-03-16 22:42:42
28
翻译 Chapter 13 Putting It All Together
你不学习如何射击,然后学习如何发射,然后学习做一个受控制的旋转——你学习发射-射击-旋转。安德的影子,奥森斯科特卡本章对并发编程谜题提供了一些提示。第13.1节考虑了反难题,Section13.2refurbishes参考计数,第13.3节有助于处理危险指针,第13.4节对序列锁定特性的推测,最后第13.5节反映了RCU救援。13.1反难题福特继续静静地数着数。这是你能对电脑做的最具攻击性的事情,相当于去对一个人说“血……血液……血液……血液……”道格拉斯亚当斯本节概述了解决难题的解决方案。13.1.1计数
2025-03-09 21:16:08
36
翻译 Chapter 12 Formal Verification
注意上面代码中的错误;我只证明了它是正确的,而没有尝试过。唐纳德克努斯并行算法可能很难编写,甚至更难进行调试。测试虽然是必要的,但却是不够的,因为致命的种族条件发生的概率极低。正确性的证明是有价值的,但最终会和原始算法一样容易出现人为错误。此外,不能期望一个正确性的证明会发现您的假设中的错误、需求中的缺陷、对底层软件或硬件原语的误解,或者您认为没有为其构建证明的错误。这意味着正式的方法永远不能取代测试。然而,形式化方法可以是验证工具箱中的一个有价值的补充。有一个工具可以以某种方式定位所有种族条件。存在许多这
2025-03-09 20:45:07
1424
翻译 Chapter 11 Validation
如果没有测试,就行工作。未知的我第一次有一些并行程序可以工作,但那只是因为我在过去的几十年里写了大量的并行程序。我有更多的并行程序愚弄了我,认为它们第一次就工作正常,而不是第一次就实际工作。因此,我需要验证我的并行程序。验证背后的基本技巧是意识到计算机知道什么出了问题。因此,你的工作就是强迫它告诉你。因此,这一章可以被认为是机器审讯的一个短程。但是你可以把好警察和坏警察的习惯留在家里。这一章涵盖了更复杂和更有效的方法,特别是考虑到大多数计算机都不能区分一个好警察和一个坏警察,至少据我们所知是这样。在许多最近
2025-03-02 22:16:31
56
翻译 Chapter 10 Data Structures
坏的程序员担心代码。好的程序员担心数据结构及其关系。拉纳斯托瓦尔兹对算法的认真讨论包括其数据结构的时间复杂度[CLRS01]。然而,对于并行程序,时间复杂度包括并发效应,因为这些影响可能会非常大,如第3章所示。换句话说,一个好的程序员的数据结构关系包括那些与并发性相关的方面。本章将揭示一些复杂的问题:1.然而,完全按照第6章中给出的良好建议设计的数据结构可能在某些类型的系统上完全无法扩展。2.完全按照第6章和第9章中给出的良好建议设计的数据结构仍然可能无法在某些类型的系统上进行扩展。3.即使是只读的无同步数
2025-02-26 00:48:23
19
翻译 Chapter 9 Deferred Processing
苍天不负有心人。紫罗兰推迟工作的策略可以追溯到有记录的历史出现之前。它偶尔会被嘲笑为拖延症,甚至纯粹是懒惰。然而,在过去的几十年里,工人们已经认识到这种策略在简化和简化并行算法方面的价值[KL80,Mas92]。信不信由你,并行编程中的“懒惰”往往优于和优于勤奋!这些性能和可伸缩性的好处源于延迟工作可以削弱同步原语,从而减少同步开销。那些愿意并能够阅读和理解这一章的人将会揭开许多谜团,包括:1.等待并发代码的粗心开发人员使用的引用计数陷阱。2.一个并发引用计数器,它不仅避免了这种陷阱,而且还避免了昂贵的原子
2025-02-23 22:06:48
94
翻译 Chapter 8 Data Ownership
避免锁定带来的同步开销最简单的方法之一是将数据分配给各个线程(或在内核的情况下,分配给各个CPU),使得每条数据仅由一个线程访问和修改。有趣的是,数据所有权涵盖了“三大”并行设计技术:它在不同线程(或CPU)之间进行划分,批量处理所有本地操作,并且将同步操作的消除推向了逻辑上的极致。因此,数据所有权被广泛使用也就不足为奇了:即使是初学者也会几乎本能地使用它。事实上,它的使用如此频繁,以至于本章不会介绍任何新的例子,而是会回顾前几章的内容。
2025-02-16 23:33:58
32
翻译 Chapter 7 Locking
锁定是最糟糕的通用方法 同步机制,但不包括所有这些 其他机制也时不时地被尝试过。 向温斯顿·丘吉尔的遗体和他所引用的任何人致歉 在最近的并发研究中,锁定常常扮演着反派的角色。锁定被指责引发死锁、队列问题、饥饿、不公平、数据竞争以及各种其他并发罪行。有趣的是,在生产级共享内存并行软件中,锁定同样扮演着生产工具的角色。本章将探讨这种反派与英雄之间的二元对立,如图7.1所示。和7.2。 这种两面性背后有很多原因: 1.锁定的许多缺点都有实用的设计解决方案,在大多数情况下都行得通,例如:
2025-02-10 00:00:48
37
翻译 Chapter 6 Partitioning and Synchronization Design
分而治之。马其顿的菲利普二世 本章介绍如何利用现代商品化的多核系统的优势,通过使用惯用法或“设计模式”[Ale79,GHJV95,SSRB00]来平衡性能、可扩展性和响应时间。正确划分的问题可以产生简单、可扩展且高性能的解决方案,而划分不当的问题则会导致缓慢且复杂的解决方案。本章将帮助你设计分区方法。 将这些内容融入你的代码中,同时讨论批处理和弱化的问题。“设计”这个词非常重要:你应该先进行分区,然后是批处理,接着是弱化,最后才是编码。改变这个顺序通常会导致性能和可扩展性下降,还会带来极大的挫败感。
2025-02-09 21:08:59
32
翻译 Chapter 5 Counting
简单如1、2、3! 未知的计数或许是计算机最简单、最自然的功能。然而,在大型共享内存多处理器上高效且可扩展地进行计数却颇具挑战。此外,计数这一概念的简洁性使我们能够探索并发的基本问题,而无需受复杂数据结构或同步原语的干扰。因此,计数为并行编程提供了一个极好的入门。 本章介绍了一些具有简单、快速和可扩展计数算法的特殊案例。但是首先,让我们了解您对并发计数已经了解了多少。 清单5.1:仅仅计数! 1未签名的长计数器=0;2 3静态__inlin
2025-02-06 22:42:51
72
翻译 Chapter 4 Tools of the Trade
你的好坏取决于你的工具,而你的工具的好坏也取决于你。 未知的本章简要介绍了并行编程的一些基本工具,主要关注运行在类似于Linux的操作系统上的用户应用程序可用的那些工具。第4.1节从脚本语言开始,第4.2节描述了POSIX API支持的多进程并行性以及对POSIX线程的讨论,参见第4.3节在其他环境中呈现模拟操作,最后,第4.4节帮助选择完成工作的工具。 请注意,本章仅提供简要介绍。更多细节可参见参考文献(和因特网),并在后续章节中提供更多信息。 4.1脚本语言至高无上的美德是简单。 亨利·沃
2025-02-04 23:38:29
48
翻译 Chapter 3 Hardware and its Habits
过早抽象是一切罪恶的根源。 成千上万的人大多数人直觉地认为,在系统之间传递消息比在一个系统内部执行简单的计算要昂贵得多。但同样,单共享内存系统中线程之间的通信也可能非常昂贵。因此,本章探讨了在共享内存系统中同步和通信的成本。这几页内容最多只能触及共享内存并行硬件设计的表面;希望了解更多细节的读者最好从亨尼斯和帕特森的经典著作的最新版本开始阅读[HP17,HP95]。 3.1概述机械同感:硬件和软件协同工作。 马丁·汤普森对计算机系统规格表的粗心阅读可能会让人相信CPU性能是
2025-02-04 21:45:54
33
翻译 Chapter 2 Introduction
首先,在过去的几十年里,由于摩尔定律的影响,多核系统的成本已经从房屋价格的数倍降到了一顿普通餐食的价格[Mo65]。如今,编程不再需要手动操作键盘。需要注意的是,并行编程的难度既是一个人为因素问题,也是一个并行编程问题的技术属性。因此,我们可以预期围绕并行系统的发明和创新水平将大幅提高,随着时间的推移,这种日益增长的熟悉度将使曾经昂贵得令人望而却步的并行编程领域变得更加友好和平凡。那些仍然坚持认为并行编程不可能实现的人,应该回顾一些较早的并行编程指南[Seq88,Bir 89,BK 85,Inm 85]。
2025-02-04 19:10:59
33
翻译 Chapter 1 How To Use This Book
对于从Linux内核角度介绍内存排序的教程,保罗·邦齐尼的LWN系列是一个很好的起点[Bon21a,Bon21e,Bon21c,Bon21b,Bon21d,Bon21f]。因此,那些在查看答案前真正努力解答问题的读者会发现,他们的付出得到了丰厚的回报,对并行编程的理解也得到了显著提升。(b)本贡献基于先前的工作,据我所知,该工作受适当的开源许可保护,我有权根据该许可提交修改后的作品,无论这些修改是全部或部分由我完成的,均需遵循相同的开源许可(除非我被允许以其他许可提交),具体如文件所示;
2025-02-04 11:42:05
133
翻译 32 Using History Interactively
历史扩展分为两个部分。从历史中选择的行称为事件,而对该行进行操作的部分称为单词。该行按照Bash的方式拆分成单词,因此被引号包围的多个单词被视为一个单词。如果单词指定符以‘^’,‘$’,‘*’,‘-’或‘%’开头,则可以省略该符号。历史扩展将历史列表中的单词引入输入流,使得重复命令、将先前命令的参数插入到当前输入行中或快速修正先前命令中的错误变得容易。历史库提供了一种历史扩展功能,类似于csh提供的历史扩展。在可选的单词指定符之后,您可以添加一个或多个以下修饰符的序列,每个修饰符前面都带有一个‘:’。
2025-02-04 11:28:26
14
Systems.Performance.Enterprise.and.the.Cloud.2013.10
2024-06-23
DDI0487J-a-a-profile-architecture-reference-manual
2024-06-23
arm-cortex-a715-core-software-optimization-guide
2024-06-23
Performance Analysis and Tuning on Modern CPUs
2024-01-12
start_kernel.xmind
2020-02-15
start_kernel.xmind
2020-02-05
JNI函数接口大全工程实例.zip
2019-08-26
CMake中文手册
2015-12-14
Learning QGIS 2.0
2015-12-13
High efficiency video coding (HEVC) text specification draft 8
2015-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人