编程
jongwu3
这个作者很懒,什么都没留下…
展开
-
深入理解memory barrier
这里有个讲解内存屏障的链接,从硬件实现上阐述为什么需要内存屏障,以及内存屏障的作用原创 2022-07-18 11:33:24 · 90 阅读 · 0 评论 -
rust交叉编译
目标: 在linux x86_64环境编译arm64的bin环境:ubuntu 20.04的容器环境,arch为x86_64安装rust环境curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh#设置环境变量echo "PATH=$PATH:/root/.cargo" >> /root/.bashrc. /root/.bashrc新建rust项目cargo new hello; cd hello原创 2021-08-11 17:53:07 · 1049 阅读 · 1 评论 -
多线程的cache调优
一般使用多线程是希望它能带来比单线程更高的效率但是事实上常常事与愿违,一个粗糙的多线程可能得到比单线程更差的性能。其中的原因可能是锁竞争也可能是调度,本文重点讨论cache对多线程的影响。举个简单的例子:我的机器上CPU拓扑:我有四个cpu但是每两个CPU是共享一级二级cache的,这个对编程影响很大。cache line是64B。硬件上知道这些就好。演示程序很简单,计算...原创 2019-08-31 23:10:27 · 2160 阅读 · 2 评论 -
三角数组最小路径和问题
题目:给出一个三角形vector<vector<int>> ve,计算从三角形顶部到底部的最小路径和,每一步都可以移动到下面一行相邻的数字。使用动态规划算法。题目解析:题目的意思是从顶到底画出一条路径,路径在每一层水平方向的跳跃最多一步,这条路径的数字之和要是最小的。这到题在解的时候必须要从底开始,因为从上到下选择路径只能用贪吃算法,得不到最优解。使用动态规...原创 2019-08-18 22:02:45 · 408 阅读 · 0 评论 -
关于c的头文件的几个问题
学c很多年来只是知道、那些律法般的规则,直到实战才知道其真正的含义。问题1. 关于防止嵌套包含宏定义开关在每个头文件的开头和结尾是头文件的宏定义开关:#ifndef XXXX#define XXXX--------#endif这是为了防止在一个源文件中重复引用同一个头文件造成的重引用。我可以理解在同一个问题中防止嵌套的功用,但是如果两个源文件同时引用同一个头文件呢,...原创 2018-11-07 11:39:28 · 241 阅读 · 0 评论 -
读《linux0.11 内核完全解析》的一点感受
为了看懂《Linux内核完全剖析》决定动手写一个操作系统。从7月开始写,到今天才完成了从启动代码到main函数,以及中断处理。已经enable了时钟中断了键盘中断,可以在屏幕上打字母。接下里还要写文件系统,内存管理和进程管理。直到写出一个shell程序。这期间参考了《x86汇编-从实模式到保护模式》和《自己动手写操作系统》的代码,有些直接拿来抄了,在此对李忠等及于渊几位作者表示感谢。今天想跟记...原创 2018-10-24 23:09:48 · 7892 阅读 · 5 评论 -
Linux下c程序调用汇编程序
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途】 除了内联汇编以外,还有一种途径可以把汇编代码整合到C/C++语言中,C/C++语言可以直接调用汇编函数,把输入值传递给函数,然后从函数获得输出值。 如果希望汇编语言函数和C/C++程序一起工作,就必须显示地遵守C样式的函数格式,也就是说所有输...转载 2018-09-02 22:47:33 · 1421 阅读 · 0 评论 -
内核中的奇异风格代码
在内核中会有很多比较奇怪的编码,本文打算总结一下自己在阅读内核代码的时候遇到的比较奇怪的编码。慢慢加。内核不限于linux或FreeBSD。#define __pcpu_type(name) __typeof(((struct pcpu *)0)->name)这行代码中将0地址强行转换成一个struct结构来获得其中的某一项的类型。(struct pcpu*) ...原创 2018-07-06 18:15:08 · 192 阅读 · 0 评论 -
c语言内嵌汇编
在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作。1、简单的内嵌汇编例: __asm__ __volatile__("hlt"); "__asm__"表示后面的代码为内嵌汇编,"asm"是"__as...转载 2018-06-12 16:59:17 · 18825 阅读 · 2 评论 -
leetcode gas station 问题
leetcode 问题:There are N gas stations along a circular route, where the amount of gas at station i isgas[i].You have a car with an unlimited gas tank and it costscost[i]of gas to travel from station i ...原创 2018-04-19 22:36:49 · 118 阅读 · 0 评论 -
c程序的执行顺序
在c语言的课堂里老师都告诉我们程序的执行入口函数是main函数,但是实际上程序在运行之初最先开始执行的却不是main,至少还有一些程序员可控的函数可以在main函数之前执行,也可以有一些函数在main结束之后执行。__attribute__((constructor)) 标记的函数实在main执行之前执行的,可以做一些初始化的工作。__attribute__((destructor)) 标记的函数...原创 2018-04-18 17:35:06 · 9609 阅读 · 0 评论 -
single number 问题
问题描述:Given an array of integers, every element appears three times except for one. Find that single one.给定一个整数数组,只有一个元素没有出现三次,找出这个元素。链接:https://www.nowcoder.com/questionTerminal/1097ca585245418ea2efd...转载 2018-04-17 21:21:22 · 121 阅读 · 0 评论