自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树的最近公共祖先

Note: 核心想法是看左边有没有,右边有没有。如果左边没有,说明在右边;右边没有,说明在左边;两边都有说明是"root"。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * Tre...

2020-04-21 09:32:06 208

原创 flush(clflush clflushopt clwb)指令的原子性问题

2020-04-06 20:54:18 1334 4

原创 堆排序代码实现

堆排序Tips:建立堆的时候从最后一个父节点开始,这样越往上走,其实是和大值比较,这样才能找出最大值;建立好大堆之后,我们需要将堆顶(最大值)和最后一个元素交换,这样数组中的最后一个元素就是最大值,同时,由于现在不满足大顶堆,我们需要重新将这个堆大顶化。记当前的堆顶为T,很显然调整后的堆顶为T,T的左孩子,T的右孩子中的最大的一个,记住,这个过程要一直持续下去使得整个堆满足大顶堆的性质;...

2020-04-04 10:35:14 278

原创 二叉树的非递归遍历

前序遍历/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */...

2020-02-29 12:20:21 178

原创 glibc memcpy函数的一些研究

在测试内存(AEP,6*256GB interleaved dax)性能的时候,发现通过8B循环写的带宽大概是4GB/s,然后无意间用了一下memcpy,发现带宽达到了10GB/s,就顺便研究了一下memcpy函数,做个记录如下:glibc的memcpy函数实现如下void *memcpy (void *dstpp, const void *srcpp, size_t len){ un...

2019-11-22 11:55:37 1092

原创 ssh 反向代理连接内网服务器并配置开机自启动(解决autossh无法开机自启动)

Q:现有公网服务器A和内网服务器B,如何通过ssh连接B呢A:安装autossh配置B免密登录AB上运行命令autossh -M 7281 -fCNR 7280:localhost:22 root@123.123.123.123,其中root是A的用户名A上查看7280端口是否监听netstat -a | grep 7280A通过命令ssh username@localhost -p...

2019-11-21 22:45:22 1501 1

转载 Hash Weak Collision Resistance & Strong Collision Resistance

具体参考这里

2019-06-11 10:08:01 1136

原创 'X86ISA::NoopMachInst' defined but not used

在新机器上编译旧gem5的时候可能会出现'X86ISA::NoopMachInst' defined but not used的错误,此时需要更改gcc g++的版本到4.8

2019-04-09 20:28:27 377 1

原创 The organization of memory

2019-02-20 11:51:28 319 3

转载 R-Tree介绍及基本操作图示

2019-02-18 09:45:32 4984

原创 GEM5中运行parsec 2.1

参考《Configure and run parsec 2.1 benchmark in gem5》PARSEC Benchmark需要在GEM5中的全系统(full system)模式下运行,本篇介绍如何在GEM5模拟器中配置和运行PARSEC Benchmark (以x86架构方式为例),如果需要在其他架构下运行,需要下载对应的镜像等文件,具体参考PARSEC官网。首先新建一个文件夹用...

2018-11-16 17:08:19 2406 2

原创 SPEC CPU2006 安装遇到的问题

由于兼容性问题SPEC CPU2006中自带的install.sh运行不了,需要重新编译源代码,进入/tool/src目录,运行buildtools文件。遇到的问题lib/getline.h:31:1: error: conflicting types for 'getline’错误原因:函数冲突,stdio.h已经定义了getline,SPEC CPU2006也定义了。解决方案:打开...

2018-11-14 15:57:19 7059 13

转载 块存储,文件存储和对象存储

【块存储】典型设备:磁盘阵列,硬盘块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1G),然后可以通过划逻辑盘、做Raid、或者LVM(逻辑卷)等种种方式逻辑划分出N个逻辑的硬盘。(假设划分完的逻辑盘也是5个,每个也是1G,但是这5个1G的逻辑盘已经于原来的5个物理硬盘意义完全不同了。例如第一个逻辑硬盘A里面,可能第一个200M是来自物理硬盘...

2018-09-16 10:54:43 445

原创 用nvmain配置gem5来模拟非易失内存

NVMain是一个体系结构级的非易失内存模拟器,可以准确地模拟内存系统的时序和能耗。NVMain需要放在GEM5全系统模拟器中运行。 1 安装Mercurial集成NVMain到GEM5中需要用到一个源代码控制管理工具:Mercurial,安装方法:sudo apt-get install mercurial 2 安装GEM5使用hg clone命令下载GEM5...

2018-08-31 17:14:32 1654 15

原创 Ubuntu安装gem5

GEM5是一个非常强大的模拟平台,服务于计算机系统架构相关研究,包括系统级架构和处理器微架构。最近在做GEM5相关的研究工作,顺便在blog上记下学习笔记。本文主要描述怎么正确地在Linux系统上安装和运行GEM5。 安装一些依赖软件运行GEM5需要一些依赖软件,包括:g++ (4.7版本及以上)、Python (2.5版本及以上)、 SCons (0.98.1版本及以上)、 S...

2018-08-30 17:35:57 4820 3

转载 Developing iOS 11 Apps with Swift 视频下载

Developing iOS 11 Apps with Swift 视频下载从 Mac 版的 iTunes 里找到课程,通过分享链接,获取下面的地址,其实就是一个 xml 文件iTunes podcasts 视频解析地址解析出所有的下载地址import xml.etree.ElementTree as ETimport requestsroot = ET.from...

2018-07-30 10:16:37 1158

翻译 TLS model

参考此文 Purpose 当此选项生效时,任何标记有__thread存储类说明符的变量都将被视为多线程应用程序中每个线程的本地变量。在运行时,为访问它的每个线程创建变量的副本,并在线程结束时销毁。与可用于并行化应用程序的其它高级高级构造一样,线程局部存储可防止全局数据的竞争条件,而无需线程的低级同步。 子选项允许指定线程本地存储模型,这些模型可提供更好的性能,但在其实用性方面更具限制。d...

2018-07-26 20:05:08 1235

原创 pip SSL: CERTIFICATE_VERIFY_FAILED

Upgrade pip using.curl https://bootstrap.pypa.io/get-pip.py | python3Instead of pip install -U pip

2018-07-17 15:57:19 299

转载 内存优化:ptmalloc、tcmalloc和jemalloc

转载于:http://www.cnhalo.net/2016/06/13/memory-optimize/概述需求系统的物理内存是有限的,而对内存的需求是变化的, 程序的动态性越强,内存管理就越重要,选择合适的内存管理算法会带来明显的性能提升。比如ng...

2018-07-12 11:29:16 377

转载 Linux内存管理

摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之...

2018-07-11 15:44:45 177

原创 ubuntu安装parallel tools失败

在低版本的parallel上安装ubuntu会出现parallels tool无法安装成功的情况,通过查看错误日志可以发现是get_user_pages函数出错,通过各种google无果,后来想到可能是因为parallel tool本身的原因,低版本parallel没有适配内核过高的ubuntu,将Parallels Tools用新版本的替换,重新安装即可。...

2018-07-11 10:26:38 4595

原创 java MD5

import java.security.MessageDigest;public class Md5 { private static MessageDigest md5 = null; static { try { md5 = MessageDigest.getInstance("MD5"); } catch (Exc...

2018-04-27 11:46:37 211

原创 java类似Python的zlib

import java.io.*;import java.util.zip.Deflater;import java.util.zip.Inflater;public abstract class Zlib { /** * 压缩 * * @param data * 待压缩数据 * @return byte[] ...

2018-04-27 11:44:44 1215

原创 bs4获取任意两个标签之间的内容

#!/usr/bin/env python# -*- coding: utf-8 -*-import requestsfrom bs4 import BeautifulSoupimport bs4import lxmldef have_next(ele): try: ele.next() except: return False ...

2018-04-03 14:22:55 6253 4

原创 mongodb更新

MongoDB更新语句db.getCollection('Excel').updateMany({"state":1}, {$set:{"state":NumberInt(2)}})

2018-01-17 17:57:51 235

原创 Python生成二维码和生成gif

#!/usr/bin/env python# -*- coding: utf-8 -*-import qrcodeimport osimport imageiodef produce_png(): data = [u'支付宝红包:nxt2', u'支付宝红包:nxt1', u'支付宝红包:测试动图', u'支付宝

2017-12-22 18:28:26 955

原创 macOS10.13.1 上编译wxWidgets

由于wx本身存在的一些问题,经常会出现编译不了的情况,特别是在最新的mac上,那么该如何编译呢? https://github.com/shiniaas/wxWidgets3.0.3

2017-11-28 18:06:44 717

原创 requests和BeautifulSoup一些细节

requestsrequests得到的内容如果是json格式可以直接使用.json方法获取json串。requests的post方法可以发送data同时也可以发送json。BeautifulSoup对于如下图的结构 可以看到最外层的ul下面是由多个li标签组成,而li标签里面又有多个li标签,如果想拿到所有的最外层li,可以使用find_all,但是需要加recursive=False

2017-11-25 11:51:09 851

原创 多态

class Vehicle{ public static void test(){ System.out.println("Vehicle"); }}public class Car extends Vehicle{ public static void test(){ System.out.println("Car"); }

2017-11-21 17:52:46 176

原创 Java的初始化顺序

import static net.mindview.util.Print.*;class Insect{ private int i = 9; protected int j; Insect(){ print("i = " + i + ", j = " + j); // System.out.println() j = 39; }

2017-11-20 14:47:42 163

原创 CCF Markdown

//// main.c// js//// Created by xxx on 17/9/15.// Copyright © 2017年 xxx. All rights reserved.//#include <stdio.h>#include <stdlib.h>#include <string.h>//处理内结构void printf_inner(char *s){

2017-09-16 20:51:53 456

转载 快排C语言的实现

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-09-15 15:17:23 1878

原创 python获取网页amf的信息

首先解释一波什么是amf:AMF(Action Message Format)是Flash与服务端通信的一种常见的二进制编码模式,其传输效率高,可以在HTTP层面上传输。现在很多Flash WebGame都采用这样的消息格式。那么我们怎么获取其中的信息呢?我们需要用到pyamf这个库,同时为了方便构造请求头和解析数据包需要用到Charles。 首先通过charles去查看请求头,然后模仿这个头给服

2017-08-18 11:35:43 3915 13

原创 python正则如何判断一个字符串中是否只有某些字符

在日常中我们经常需要判断一个字符串是否符合规范,其最基础的需求就是判断字符串中是否只有某些特定的字符,遍历整个字符串然后一个一个字符的判断当然可以,但是如何用正则实现呢。 先给出代码re.match(r'[\d\(\)\.]+$', '1.23(12.3)')上述的正则规则是如果字符串中只含有数字,左括号,右括号和小数点则匹配成功,否则匹配不成功,这是利用re.match的特性,因为re.matc

2017-08-08 11:15:11 14407

原创 Python如何读取excel单元格的缩进

有些excel中有这种利用缩进表示层次结构的方式,那么python如何解析它们呢? 工具:openpyxl 代码如下:#!/usr/bin/env python# -*- coding: utf-8 -*-from openpyxl import load_workbookwb = load_workbook('a.xlsx')ws = wb.get_sheet_by_name(u'年度B

2017-07-26 11:48:05 14535

原创 python求一个时间点的前一个月和后一个月

python如何获取一个时间点的前一个月和后一个月,网上虽然有很多教程,但是本人感觉太杂了而且不太好用,研究一番之后决定提供一种方法和思路。#!/usr/bin/env python# -*- coding: utf-8 -*-import datetimeimport calendartime = datetime.date(2017, 7, 20) #年,月,日#求该月第一天first_

2017-07-20 18:35:32 26731 3

原创 python中编码问题小结

1.在写python代码的时候请在文件最开始加上#!/usr/bin/env python# -*- coding: utf-8 -*-  并且如果在代码中需要使用中文请使用u’需要的中文’这种形式。 2.问题:如何查看unicode编码对应的中文。str = '\u4e2d\u6587'print strprint str.decode('unicode-escape')  运行结果如下。

2017-07-19 17:17:54 6736 1

原创 最长公共子序列LCS和最长子串SLCS

最长子序列LCS#include <iostream>using namespace std;#define LEFT_UP 'a'#define UP 'b'#define LEFT 'c'//求最长子序列长度int Lcs_length(string s1, string s2, int* &num, char* &seq){ int m = s1.length(); i

2017-07-17 15:54:40 354

原创 python 多线程+queue

python的queue设计的是线程安全的,所以大家伙放心用吧! python多线程的一种简单的实现如下:#!/usr/bin/env python# -*- coding: utf-8 -*-import threadingimport timedef fun(argv): print 'in', argv time.sleep(2)threads = [] #用于保

2017-07-07 23:35:03 9852 2

原创 windows下QT如何通过ODBC连接达梦数据库

1.首先需要保证你的QT编译器位数和DM数据库位数一致,否则无法连接成功。 2.配置数据源。 数据源在控制面板中的管理工具里面,如下图。 如果数据库是32位的就用32位的数据源,64位的就用64位的数据源,数据源的配置比较简单,具体可以自行google。 3.用QT新建一个项目。 为了使得QT中能使用数据库需要在对应的pro文件中增加QT += sql 接下来的事情就简单

2017-06-29 08:45:32 24795 6

空空如也

空空如也

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

TA关注的人

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