自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 如何用自己的工具分析speccpu2006的benchmark

倒持了挺久,终于肯谷歌了,找到了对应的文档,解决了。speccpu是提供了对应的网址的。

2024-04-22 12:12:53 219

原创 C++中,multiple definition of xxx 解决方法

头文件,并且在这个头文件中定义了多个函数和变量,导致了多次定义错误。比如,报错是 multiple definition of funcA。那么在头文件中只留funcA的声明,具体的实现放在单独的c.cpp中。根据错误信息,可能是源文件 a。问题就可以得到解决了。

2024-04-22 12:04:41 789 1

原创 记·汇编语言、C语言分别写并链接

电脑是64位的,汇编语言是AT&T风格。风格不同的汇编语言,汇编时的指令是不同的。在我学习过程中带来了挺多麻烦。

2024-03-28 16:04:27 174 1

原创 ubuntu下载源、镜像、apt update、apt upgrade关系讲清楚

官方总店在米国,每次买一本书都要跑大老远,太麻烦了。所以清华、上交、阿里云就方便大家,自己搭建一个分店,分店的资源,向总店看齐。总店有的,分店也基本都有,所以每次买书就不用跑那么远,花那么多时间啦。:/etc/apt/sources.list,打开会看到里面会有几个网址,每个网址就相当于自己“关注“的店铺。:不知道那几家店铺上新了没有,我手里的书记大全的目录,又没过时,更新一下。:我关注的那几家店铺,都有什么书,都是什么版本,统统记录在里面。:看看自己有哪几本书,现在有新版本了,更新一下。

2024-03-28 15:59:13 395

原创 uiCA模拟器和bHive benchmark的使用

uiCA是一个模拟器,可以预测基本块在最新的英特尔微体系结构上的吞吐量。除此之外,它还提供了代码执行的洞察。uiCA基于来自的数据,结合了详细的流水线模型。与相关工具类似,它假设所有内存访问都会导致缓存命中。关于uiCA的流水线模型的详细信息,以及与类似工具的比较,可以在论文中找到。

2024-03-13 12:07:57 706

原创 /bin/sh: 1: llvm-mc: not found

如果是ubuntu的话,直接安装llvm就行了。

2024-03-13 00:55:46 123

原创 解压常见_gzip:stdin:not in gzio format:怀疑下文件是否损坏

可有将文件传到windows上,试试看。呦呵 4kb,和应该的大小对不上。

2024-03-12 13:48:46 160

原创 免费下载《一份不太简短的LaTeX介绍》

不需要积分啥的,自己想省事儿找pdf的时候发现网上的都太麻烦了,就自己分享出来了。(从官网clone之后还需要操作生成pdf)是个zip,解压就行。

2024-03-11 12:43:42 442

原创 Ubuntu中Depends: xxx(< 1.2.1) but xxx is to be installed

首先确定一下这个库或者包,是不是重要的系统依赖,如果是重要的系统依赖,卸载完可能apt-get 都用不了了。所以打算卸载重新装低版本的人,先考虑下卸载了重要库导致系统出问题的风险。卸载完之后,连着的wifi就断了,然后重启后,图形化界面都打不开了。因为自己与周围人都经历过卸载完包系统都无法正常运行了的情况。然后就听从网上的博文将libelf1库卸载然后再装新版本。别随随便便把高版本依赖卸载然后想着再重新安装低版本的。本文不提供这个报错的解决方法,只是提个醒。

2024-03-10 16:16:37 409

原创 linux系统的~/.config/文件夹功能是什么

很多时候我们在linux的安装软件包,并对其进行配置的过程中,需要在~/.config文件夹下创建或修改配置文件。或者在其他有些场景下,我们也需要进入这个文件夹。那么这个文件夹的功能是什么呢?

2024-03-10 11:42:08 1558

原创 dockerfile笔记

那就是dockerfile了,dockerfile是个文本文件,就像shell脚本那样,你让干什么,docker就给你干什么,然后一层层搭积木,就搭建成了自己目标的镜像。IO需求较大,此外如果要有多次增强,每次都要启动容器,修改,提交,略显繁琐,有没有省事的方法呢。WORKDIR:指定在创建容器后,终端默认登录的进来工作目录,一个落脚点(就相当于,Ubuntu开机后,你默认所在目录是自己的home目录)RUN:构建的时候执行的命令,等同于再终端操作的shell命令。CMD:指定容器启动后要干的事情。

2024-03-09 20:34:47 159

原创 intel pin 插桩工具入门

Intel Pin 是一种动态二进制插桩(DBI)工具,它允许用户在不修改源代码的情况下,对程序进行插桩和分析。插桩是指向程序中插入额外的代码,以便监视程序的执行、收集数据或修改程序的行为。Intel Pin 可以用于各种用途,包括性能分析、代码覆盖率分析、安全漏洞检测、软件调试等。通过插桩工具,开发人员可以获得对程序运行时行为的深入了解,而无需修改程序的源代码。性能分析:可以插入代码来跟踪函数调用、内存访问、指令执行等,从而进行性能分析和优化。安全分析。

2024-03-09 20:33:36 1609 2

原创 /usr/bin/install: ‘xxx‘ and ‘/home/a123/hdf5-1.12.0/bin/xxx‘ are the same file

然后在make install的时候,出现以下报错后来分析出现的原因。是我在执行第一个指令选定安装路径的时候将安装路径选择为当前路径,也就是hdf5下载的路径。install的本质就是将一些文件复制到指定文件,选择将下载文件位置作为安装位置,就导致某些文件要从原本所在目录,删除自己,然后再复制到原本所在目录,就会出现问题。

2024-03-07 15:00:00 177

原创 c++ 类写了构造函数但是对象被初始化为乱值

但是在后来使用该类的时候发现,有一个成员变量初始化之后是乱值,回去一看,这个成员变量在构造函数中是写的,初始化为0的。以及如果有人出现了同样的情况,就也可以去看一下,出现乱值的变量,是否因为构造函数中等于号写错而导致的错误。然后经过好几遍观察,才发现,自己在构造函数中,将“=”写成了“==”号,编译器并没有任何报错或者提醒。该bug的现象就是,我写了一个类,并写了一个构造函数,将每个成员都初始化为0或者特定值。第一遍排查的时候,扫了一眼,觉得没问题,后面再排查,才发现,符号写成了“==”号。

2024-01-29 16:40:51 153

原创 Dynamorio插桩工具的使用

首先,dynamorio的官网地址为Home下载页面地址为:本文章只讲linux下载和使用方式。

2024-01-23 21:18:43 802

原创 记录C++一个忘记写return导致的bug

自己的项目2000行左右,所以我就复制一遍,对挨个组件的代码,进行注释掉,并且由于对自己项目的了解,注释完也是可以编译的。注释一片,重新编译一次,注释一片,重新编译一次。当注释掉某一块代码之后,发现编译后可以顺利运行。这一片代码,经过分析,找到了一个函数,我忘记写返回值了。debug结束。

2024-01-06 15:11:06 1017

原创 docker容器网络笔记

我们使用docker时,容器是可以通过我们的指定,选择是否能够连接网络,以及选择暴露哪些端口,映射到主机哪些端口的,本笔记就主要是针对这个的实现。

2023-08-30 15:43:24 94

原创 Docker源码阅读笔记-urfave/cli框架

cli.NewApp()生成一个app实例。

2023-08-29 21:33:03 86

原创 用VScode远程连接WSL遇到的问题

以前虚拟机用VScode远程连接,大致步骤就是1、虚拟机上安装openssh-server,并确认启动2、确认VScode所在物理机上也已经安装了ssh客户端3、ifconfig获得虚拟机的ip,然后在vscode安装插件,根据ip配置4、然后一般就能顺利连上说下我使用WSL时遇到的问题。

2023-07-07 09:29:26 2339

原创 go切片扩容带来的越界问题

理解:本来指针指向A区域,扩容操作,使得重新申请一块更大的B区域,然后让指针指向B,再释放掉A,如果指针还指向A区域,扩容后这块区域就是未分配的空间了,指向未分配空间,自然是越界了。在go语言,切片扩容会重新申请一块新的更大内存,将媛有切片的数据复制到这块新的内存中,而原始那一块空间,自然就释放掉了。因此,如果当切片发生扩容时,如果指向原始切片底层数组的指针或索引没有及时更新到新的底层数组,就会出现越界访问问题。

2023-06-22 10:23:03 167

原创 一天一道go面试题(2)go语言的内存对齐

实际开发中,如果真的需要手动内存对齐,可以使用struct结构体来完成,因为结构体字段的顺序和类型会影响其在内存存储中的布局,可以在结构体定义中使用padding这种特殊数据类型的字段来控制字段之间的空间分配,从而进行内存对齐。Go语言的数据类型在内存中的布局是按找一定的对齐规则进行的。Go语言中,内存对齐通常是由编译器自动完成的。

2023-06-15 17:25:48 54

原创 gorotine调度yield机制笔记

goroutine中,yield是一种协作式的调度方式,和pre-emption(强制抢占)一起配合。pre-emption是runtime强制使得该协程放弃执行权,而yield是可以由程序员主动控制并放弃资源。当一个goroutine执行完毕或者遇到阻塞时,就会主动放弃CPU资源,让其他等待执行的goroutine有机会执行。这个主动放弃CPU资源的行为就是yield。评价方面:yield机制通过主动放弃CPU资源,避免了长时间占用CPU资源和过度竞争的问题,提高了程序的并发性能。

2023-06-15 15:24:18 543

原创 什么是goroutine中的 pre-emption机制,笔记

但是如果仅仅简单使用这种模式,会造成某个goroutine长时间占用CPU资源的情况,所以goroutine的调度机制是抢占式的,pre-emption机制就是在goroutine执行过程中周期性地检查当前是否需要进行抢占。goroutine的基础调度机制是,创建新的goroutine之后加入到队列中,当存在线程空闲时,就会从队列中取出来goroutine进行执行。需要注意的是,pre-emption机制是在Go语言1.14版本之后才默认开启的。在go语言中,goroutine是一种轻量级的协程。

2023-06-15 15:02:29 120

原创 程序员修养1-数据库和普通存储系统有啥区别

普通常规的存储系统,没法做太细粒度的区分,这个数据是A用户能看的,那个数据是B用户的隐私数据,这些东西是特权用户能看的,这么大范围的数据,是要管理员才能看。数据库可以通过各种约束条件,如主键、外键、唯一性约束、检查约束等,来确保存储在数据库中的数据的完整性,从而避免了用户因为误操作或者其他原因导致的数据损坏和不一致问题。总之,就是感觉,数据库是个专业化了的,在这几个方面有了非常大的改进,一个pro版本的存储系统。数据库也是往里面存东西,从里面读东西,存储系统也是往里面存东西,从里面都东西。

2023-06-06 22:14:55 380

原创 如何设置全局访问一个可执行文件

经过执行这条指令之后,我在/usr/bin中就可以找到名为serverless的文件,并且在任何文件夹中都可以通过指令“serverless”进行执行。我想全局访问/usr/local/nodejs/lib/node_modules/serverless/bin/serverless.js。命令需要管理员权限,因此你需要输入管理员密码来进行确认。此外,请仔细检查目标文件和链接名称,确保它们是正确的。命令检查是否已成功创建符号链接。可以通过创建符号链接的方式解决。权限创建一个新的符号链接。

2023-06-02 16:57:11 154

原创 Ubuntu unable to locate package xxx(新手情况)

首先考虑的是是否未更新下载源。

2023-06-02 13:50:04 52

原创 Ubuntu18.04 no wifi adapter found

安装的时候遇到过,解决了,后来又遇到了这个问题,方便下次再遇到好解决问题所以写个文章记录。

2023-05-23 22:38:06 2555 4

原创 build constrains exclude all the go files

网上查了很多方法没解决,最后用这个指令解决了。

2023-05-21 14:21:32 184

原创 ubuntu查看每个文件夹总大小

难道每个文件夹都是4KB大小吗,点进去后发现里面各自都是有更大的文件的,所以这个指令看不了包括了文件夹中所有内容的总大小。遇到一个简单问题,我想查看当前文件夹下面各个文件夹的总大小。经查询,找到这个指令,问题解决。显示的也都是整个文件的大小了。

2023-05-19 22:35:36 285

原创 go项目import全都飘红

对于刚上手go语言的小白(比如之前的自己),跟随别人的文章,刚安装了go语言,配置好了环境和代理。用goland第一次打开一个别人的项目时,看到import全都飘红,还是会很头大的。这种情况的应对方法是,打开下端的Terminal。

2023-04-24 15:54:48 1170

原创 Ubuntu清除系统cache的指令

做一些实验,测一些性能数据的时候,缓存影响测到的数据。通过以下指令可以清理缓存。

2023-04-10 13:36:36 1765

原创 云计算平台容器内部是什么

真·深入底层原理本文章以openwhisk平台为例首先,当客户端的请求,经过平台组件的层层处理和传递(这个过程时间很快),到达openwhisk的invoker组件,它会调用docker对容器进行比较直接的管理。首先,根据用户上传的action的语言,平台会选择相匹配的语言runtime(运行时,即为某一个语言对应的各种依赖,且这个runtime会被打包成容器镜像,供以启动容器),invoker会调用docker,使用docker run来启动容器。

2023-04-08 22:31:05 148

原创 go install 报错xxxxxconnection refused

【代码】go install 报错xxxxxconnection refused。

2023-04-08 14:42:32 324

翻译 openwhisk修改运行时

要使得自己修改的镜像能够被openwhisk使用,需要将该镜像上传到docker hub上,此时就需要一个自己的docker hub账号。当openwhisk官方的运行时不能满足你的需求的时候,比如需要tensorflow包,那么就可以在官方镜像的基础上进行修改。之后在本机上执行以下命令,并根据提示输入用户名和密码。push操作,将镜像上传到docker hub。invoke这个action并获取返回值。创建新的openwhisk action。创建一个nodejs action。创建docker镜像。

2023-04-08 14:17:41 61

原创 如何将docker镜像文件处理成文件夹

然后在bundle文件夹的rootfs文件夹中,就是那个镜像的文件系统了。就可以直接在本机上看一下,这个镜像的文件系统目录结构了创建要存的文件夹。

2023-04-07 14:10:21 205

原创 docker 数据卷操作

第一个xxx表示本机的目录,第二个xxx表示容器内的目录,第三个xxx表示读写权限。

2023-04-03 22:57:14 103

原创 openwhisk部署

此处克隆项目,我有遇到一些由于网络的报错,比如connection refused。处理方法是多次重复,以及尝试着切换了另一个网络就行了(比如刚开始是连接的校园网,不行的话就切换成手机热点,然后就克隆成功了)。后面的内容会慢慢添上。将openwhisk项目克隆到本地。并结合自己部署时遇到的报错。

2023-04-03 16:28:27 497

原创 Openwhisk部署报错:Execute failed: java.io.IOException: Cannot run program “npm“

这个是缺少npm了,直接安装即可。

2023-04-03 10:28:01 666

原创 openwhisk机理

收到用户的请求后,为用户创建容器,在容器内进行容器的初始化,以及运行用户指定的代码,最终将结果返回给用户。我上传规定格式的代码段,openwhisk为我运行,并且将结果返回给我。

2023-04-02 19:38:06 111

原创 自己的理解:什么是benchmark

就是性能测评工具,内部有哪些步骤,哪个步骤占了多少时间,占用了多少资源等等。

2023-03-31 16:57:04 171

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除