自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 oracle根据时间格式查询数据

最近开始工作了,要学习java后端开发,遇到这个问题搞了我一天,记录一下。问题来源:我用的springboot整合mybatis来访问数据库,需求是通过数据库表中的时间字段(TIMESTAMP类型)查询一段时间内的订单,不管怎么写查询语句都不对。结果一番查证了解到一个新的知识点:我们在postman测试时输入的时间是String类型的,所以在查询之前必须将String类型的语句转为对应的时间类型,可以是Timestamp也可以是Date类型,所以用两种转化方法,下面先介绍简单的SQL语句的正确写法,再介

2021-08-06 18:00:03 1398 1

原创 unsigned问题

在内核实验过程中,遇到很多问题,最后检查出来都是因为unsigned 使用不当而出现的错误。1、unsigned型赋值为负数的时候打印出来会很大,所以千万记住不能给无符号数赋值为负数。2、无符号数跟有符号数在做比较的时候要特别注意,也很容易出错。所以记住了unsigned 类型一定记得不能混合用。unsigned和signed的区别1、所有比int型小的数据类型(包括char,signed char,unsigned char,short,signed short,unsigned short)转

2020-06-30 17:13:35 1148

原创 DWARM实验踩坑

传入函数变量问题问题传入参数到函数体中做一些列改变,在函数体外面,该值无法改变。特别注意指针在这方面的使用。解决办法如需通过函数改变变量的值,那么就只有通过取该变量的地址传入函数,即可改变。函数体里变量问题问题函数体里变量是存于栈中,每个程序的栈大小是有限的,所以在变量特别大的时候(比如数组长度特别长),运行会导致整个程序崩溃。解决办法可以通过申请空间来存储数组的大小。双向循环链表问题双向循环链表在插入的时候,要注意指针改变的先后顺序。比如将temp_list_node插入到page

2020-06-02 15:05:34 311

原创 <LeetCode>寻找两个有序数组的中位数

#include <stdio.h>#include <vector>using namespace std;#define max(a,b) (((a) > (b)) ? (a) : (b))#define min(a,b) (((a) < (b)) ? (a) : (b))class Solution {public: double f...

2020-03-07 22:35:59 158

原创 队列

队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。单队列(queue)在C++中只要#include即可使用队列类,其中在面试或笔试中常用的成员函数如下(按照最常用到不常用的顺序)push() :从队尾压入pop()...

2020-03-07 21:30:30 262

原创 <leetCode>反转链表

写这个主要是为了自我反省,自己写的代码,执行效率不高且代码多,别人写的既简洁又省时省内存。下面就是记录了自己写的代码,和别人的代码自己写的用了递归的方法,每次传入链表头循环,去掉最后一个结点,时间复杂度为n的平方。没有多分配结点,仅仅多分配了一个头结点。/** * Definition for singly-linked list. * struct ListNode { * ...

2020-03-02 22:24:18 156

原创 <leetCode>两数之和

题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。C语言双重循环求解/** * Note: The returned array must be malloced, assume caller calls free(). */int* twoSum(int* nums, int numsSize, int ta...

2020-02-29 21:10:46 167

原创 系统级性能分析工具perf的安装与使用

介绍安装环境:Ubuntu16.04 + kernel 4.4.30系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化。性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码。代码优化的目标是针对具体性能问题而优化代码或编译选项,以改善软件性能。在性能剖析阶段,需要借助于现有的profiling工具,如perf等。在代码优化阶段往往需...

2019-11-05 10:26:18 13015 1

原创 [c++学习笔记] using namespace std的作用

C++编程时几乎每次都敲上using namespace std;但这行代码究竟有什么作用呢? C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。早些的编码将标准库功能定义在全局空间里(所以并不需要注明使用什么命名空间),声明在带.h后缀的头文件里。C++标准为了和C区别开,也为了正确地使用命名空间,规定头文件不使用后缀.h。因此,当使用<iostream...

2019-08-07 10:30:49 683

原创 PMFS内存文件系统的文件块组织方式以及写流程

由于最近做关于PMFS文件系统的实验,实现了pmfs写文件的数据一致性,还改了PMFS的空间管理,所以想对自己近两个月所做的工作进行一个总结,以下就简单谈谈自己对于PMFS以及拓展知识的理解,如有不对之处还请指出!或者还想了解更多的可以留言讨论。文章目录介绍文件块组织Write介绍先简单介绍一下,物理块号,逻辑块号,物理地址,逻辑地址以及虚拟地址之间的关系。这里围绕PMFS文件系统来展开介...

2019-07-20 18:51:45 1176 3

原创 PMFS内存文件系统的空间管理

文章目录PMFS多粒度块物理块管理方式块分配方式块回收方式PMFS多粒度块PMFS支持多粒度的文件组织方式,包括1G, 2M, 4K 三种粒度。文件默认为4K大小的页,通过调用 pmfs_fallocate()可以设置文件页大小。pmfs_fallocate:static long pmfs_fallocate(struct file *file, int mode, loff_t of...

2019-07-19 15:16:45 802 1

原创 Fio的安装与使用

安装下载地址:http://freshmeat.sourceforge.net/projects/fio/安装:cd fio-2.1.10/./configureMake Make install 使用命令顺序读:fio -filename=/mnt/pmfs/1.txt -direct=1 -iodepth 1 -thread -rw=read -ioengine=...

2019-07-12 21:16:36 4613

原创 编译内核

内核准备查看本机内核版本uname -r unaem -a内核下载下载:下载相应级别的Linux内核源代码压缩包:https://www.kernel.org/pub/linux/kernel这里我下载的是 4.4.30版本解压先拷贝至 /user/src 目录,再解压,然后进入内核根目录 cp linux-4.4.30.tar.gz /usr/src // copy t...

2019-07-10 19:40:48 116

原创 Filebench的安装以及使用

安装下载地址:https://sourceforge.net/projects/filebench/files/1.5-alpha3/filebench-1.5-alpha3.tar.gz/download进入文件所在的目录:一般是download路径解压到usr/local/路径:sudo tar -zxf filebench-1.5-alpha3.tar.gz -C /usr/loc...

2019-07-10 19:05:35 417

原创 挂载内存文件系统pmfs

编译内核在内核编译的过程中,主要需要做的工作是在make menuconfig过程中, 需要选择一些必要的选项。可以参照官网 https://nvdimm.wiki.kernel.org/#dokuwiki__top 里面有如何编译、分区、挂载的教程如图所有内容。我是编译的4.4.30的内核,其中有几个选项找不到可以忽略,选项前方括号置为*或M即为选中,具体可以参见menuconfi...

2019-07-09 16:09:38 1176

原创 Ubuntu设置默认启动内核版本

最近做实验要一直使用4.4.30的内核,但是系统里有很多个内核版本,所以准备通过设置grub的方式设置默认启动内核。sudo vim /etc/default/grub修改GRUB_DEFAULT,默认为GRUB_DEFAULT = 0,修改为自己想默认的内核最开始修改为 GRUB_DEFAULT=“Ubuntu, with Linux 4.4.30.”然后 sudo update-gr...

2019-07-05 15:34:16 6154

原创 Android studio调用第三方so文件(成功)

踩了很多坑,走了很长的路,网上各种各样的说法把我整得晕头转向,最终还是成功了,这里自己总结一下,也顺便分享有需要的伙伴。如何利用ndk编译我这里就不说了。在linux中进行ndk编译:https://blog.csdn.net/FZeroTHero/article/details/89308312在Android studio中ndk编译:https://blog.csdn.net/FZero...

2019-04-19 16:30:15 6799

原创 Linux下NDK编译so库

环境配置1、NDK下载。地址:https://developer.android.google.cn/ndk/downloads/2、随便在哪个目录直接解压3、配置系统环境变量#vim /etc/profile在文件末尾添加如下内容:export ANDROID_NDK=“ndk路径”export PATH=“ANDROIDNDK:ANDROID_NDK:ANDROIDN​DK:PA...

2019-04-15 11:12:20 1894 1

原创 Android Studio NDK开发并调用so库

前言什么是NDK?NDK全称是Native Development Kit,NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。NDK集成了交叉编译器(交叉编译器需要UNIX或LINUX系统环境),并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就...

2019-04-13 17:49:02 2652

原创 Binder机制的实现原理以及源码分析

REFRENCE :https://blog.csdn.net/zhwadezh/article/details/79310119https://blog.csdn.net/liwei405499/article/details/42775319一、Binder简介Binder机制就是一种进程间通信(IPC)的实现方式,在linux中没有。1、现有的IPC通信机制管道:在创建时分配一个p...

2019-04-02 09:52:04 764

原创 HAL(Hardware Abstract Layer)硬件抽象层工作原理

HAL的存在意义硬件抽象层是介于android内核kernel和上层之间的抽象出来的一层结构。他是对linux驱动的一个封装,对上层提供统一接口,上层应用不必知道下层硬件具体怎么实现工作的,它屏蔽了底层的实现细节。它在整个android架构中的位置如下图所示:传统的linux对硬件的操作基本上在内核空间的linux驱动程序中实现了,那么现在为什么要多此一举把对硬件的操作分为HAL和linu...

2019-03-19 21:24:27 7514 1

转载 Android6.0启动开机流程分析

内容转自:https://blog.csdn.net/qingdaohaishanhu/article/details/87915298

2019-02-27 16:41:28 298

原创 Ubuntu16.04编译Android6.0源码

准备工作环境要求:openJDK7其他版本的不行(如何安装自行百度),Android6.0源码,安装依赖包:sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 li...

2019-02-20 21:44:16 1186

转载 Ubuntu16.04编译Android6.0源码过程中安装依赖包遇到的问题解决方法(E: Unable to correct problems, you have held broken pack)

问题命令:apt-get install libmysqlclient-dev报错:Reading package lists… DoneBuilding dependency treeReading state information… DoneSome packages could not be installed. This may mean that you haverequ...

2019-02-20 21:08:14 912

原创 Android studio 无需编译调试安卓源码

所需文件环境Windows10,安装Android studio 、jdk,下载源码Android-6.0.1_r1(这里Android studio,jdk和源码的版本不固定,大家可以勇敢的去尝试其他版本)。还需要下载一个android.iml文件和一个android.ipr文件,ipr文件是源码编译后产生的文件。除了源码上述文件我将给个连接下载。准备工作首先解压源码文件(解压过程中出现重...

2019-02-18 21:23:31 987

perf-4.4.30-2.mga5.x86_64.rpm

内核4.4.30中安装perf,会有些package不支持,安装不上,只能自己下载安装包来手动安装

2019-11-05

空空如也

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

TA关注的人

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