- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 linux动态库和静态库
文章目录概述静态库动态库概述linux下有两种库:动态库和静态库。静态库在编译过程中已经被载入,因此编译出来的可执行程序都比较大。程序运行时不再需要静态库,即程序编译完之后静态库就没用了。动态库(共享库)在程序运行时载入内存,在编译过程中仅简单的引用,因此可执行文件体积比较小。程序运行需要加载动态库,即程序和动态库必须同时存在。静态库静态库是.o文件的集合,使用时可以把.a文件当成多个.o的集合使用。如果.a依赖于动态库,生成.a时不会把.so动态库集合进来,那么使用者使用.a时需要同时链接其
2021-11-03 14:23:16 176
原创 gdb调试
文章目录信号处理设置源代码路径多进程调试多线程调试打印相关LIBRARY_PATH与LD_LIBRARY_PATHC_INCLUDE_PATH、CPLUS_INCLUDE_PATH信号处理gdb对信号处理有三类动作:停止、打印、传给程序。info handle # 查看所有信号的处理方式handle SIGUSR2 nostop noprint pass #设置信号处理方式动作解释print收到信号打印noprint收到信号不打印stop收到信号中断n
2020-09-30 09:43:17 695
原创 排序算法-冒泡排序
文章目录介绍步骤排序效果实现排序方法比较介绍冒泡排序(Bubble Sort)一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作重复地进行直到没有再需要交换。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。步骤比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续
2020-09-30 09:41:54 178
原创 排序算法-选择排序
文章目录介绍排序效果实现介绍选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此类推,直到所有元素均排序完毕。排序效果实现#include <stdio.h>#include <stdlib.h>static void RandInitArray(int *arr, int num);static void
2020-09-30 09:41:24 142
原创 排序算法-堆排序
文章目录介绍步骤排序效果实现介绍堆积排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆性质:即子结点的键值或索引总是小于(或者大于)它的父节点。步骤略排序效果实现#include <stdio.h>#include <stdlib.h>static void RandInitArray(int *arr, int num);static void PrintArray(int *arr, int nu
2020-09-30 09:40:55 99
原创 排序算法-快速排序
文章目录介绍步骤排序效果实现介绍快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次方项之可能性。步骤从数列中挑出一个元素,称为 “基准”(pivot),重新排序数列,所有元素比基准值
2020-09-30 09:40:09 74
原创 查看linux系统信息
文章目录系统信息内核和架构操作系统语言和字符集进程其他硬件信息cpu内存磁盘系统信息内核和架构$ # uname --help -a, --all print all information, in the following order, except omit -p and -i if unknown: -s, --kernel-name print the kernel name -
2020-09-30 09:38:49 230
原创 CentOS搭建本地yum源
文章目录创建仓库http设置repo文件常用命令Q&A升级python导致yum不可用创建仓库把所有的光盘或iso文件(ios可能有两个或多个)中的rpm包拷贝出来使用createrepo创建仓库$ mkdir -p /opt/yum/centos6.7/Packages$ mount /dev/cdrom /mnt$ createrepo -v -g /mnt/repodata/*-comps.xml /opt/yum/centos6.7createrepo的-g的作用是加
2020-09-30 09:36:52 124
原创 算法-大数阶乘
对于比较小的数n,可以通过递归或循环将计算结果保存为整形。但是如果n很大的时候,比如1000,那么n!肯定超出整形数据所能表示的范围。因此必须采用其他方法解决。一般是采用数组模拟。实现代码如下:#include <stdio.h>#include <stdlib.h>#include <math.h>#define STORE_STEP_SIZE 100static int s_store_size = 0;#define EXTENT_STORE(s)
2020-09-30 09:35:27 125
原创 基于docker搭建greenplum开发环境
文章目录安装docker给普通用户权限配置greenplum环境备份镜像安装docker略给普通用户权限# 把普通用户加入docker组,如果docker用户组不存在,新建sudo gppasswd -a yfshi docker# 重启docker服务sudo systemctl restart docker配置greenplum环境# 创建自定义网络,以便后续设置静态ip$ docker network create --subnet 10.0.0.0/24 syf_net#
2020-09-29 15:56:41 1450
原创 PostgreSQL内存上下文
文章目录内存管理体系结构内存上下文内存上下文树术语内存上下文结构数据结构MemoryContextMemoryContextMethods方法集AllocSetAllocBlockDataAllocChunkData重要函数总体流程palloc流程pfree流程重要的内存上下文打印内存上下文树代码结构内存管理体系结构内存上下文内存上下文(MemoryContext)借鉴了操作系统的一些概念。操作系统为每个进程分配了进程执行环境,进程之间互不影响,由操作系统来对环境进行切换,进程可以在其进程环境中调
2020-09-29 15:35:50 1480
原创 PostgreSQL查询和计划树绘图工具
文章目录使用Graphviz的dot工具绘制QueryStmt和PlanStmt。工具地址:dotpgstmt使用方法:获取查询树或计划树postgres=# set client_min_messages to log;SETpostgres=# set debug_print_parse to on;SETpostgres=# select * from t;LOG: parse tree:DETAIL: {QUERY :commandType 1 :
2020-09-29 15:29:04 696 1
原创 PostgreSQL共享缓存区管理
文章目录共享缓冲区数据结构BufferTagBufferDesc引用计数(BufferDesc.refcount)使用计数(BufferDesc.usage_count)BufferStrategyControlBuffer Descriptors主要函数InitBufferPool流程BufferAlloc流程缓冲区替换策略FreeListClock-sweepClock-sweepbuffer-ring共享缓冲区PostgreSQL中的buffer主要是用来将外存中的数据内容读入到内存中,加速运算过
2020-09-29 15:25:43 985 1
原创 Greenplum-Pgbouncer测试
文章目录测试环境greenplum配置交互key安装初始化pgbouncer测试1000连接数配置启动管理测试测试环境系统:CentOS release 6.5 (Final)节点:节点地址角色h1192.168.2.114master,seg0seg7,mirror(seg8seg15)h2192.168.2.115standby,seg8seg15,mirror(seg0seg7)连接数:pgbouncer — 100 —> mastercl
2020-09-29 10:29:41 367
原创 hostname的那点事
文章目录hostname的本质修改hostnamehostname与/etc/hosts操作系统:centos6hostname的本质hostname是Linux下的一个内核参数,保存在/proc/sys/kernel/hostname下,它的值是Linux启动时从rc.sysinit读取的.而/etc/rc.d/rc.sysinit中HOSTNAME的取值来自于/etc/sysconfig/network下的HOSTNAME.Linux的启动过程:加载BIOS读取MBRBoot L
2020-09-29 10:13:22 246
原创 Greenplum的编译
文章目录添加用户搭建开发环境编译开发包gcc-4.8.5cmake3python-2.7ninjageos+proj+gdallibeventApache Maven编译gporca编译gpdb编译postgis编译pgbouncer编译jdbc编译odbc附:CentOS 7.0编译gpdb操作系统:centos6.4 x64最小安装添加用户$ useradd gpadmin$ passwd gpadmin把gpadmin加入sudoer,之后的操作都在gpadmin用户下完成。搭建开发
2020-09-29 10:07:24 643
原创 Greenplum的安装和初始化
文章目录操作系统配置开发环境系统设置系统参数配置添加主机名本地映射重启操作系统安装Greenplum添加用户创建节点文件配置主机互信安装初始化Greenplum使用Greenplum节点分配:地址主机名segmentmirror10.0.0.100gpmaster10.0.0.101gp1pseg0、pseg1mseg4、mseg510.0.0.102gp2pseg2、gpseg3mseg0、mseg110.0.0.103gp3pseg4、
2020-09-29 10:03:07 925
原创 kvm虚拟机的安装和使用
安装sudo apt-get install kvm qemu-kvm libvirt-bin bridge-utilskvm 内核模块,实现cpu虚拟化和内存管理libvirt-bin 管理虚拟机qemu-kvm 是虚拟机bridge-utils 管理网桥如果只是使用命令行方式,上面的软件包已经足够。下面是图形界面工具:sudo apt-get install virt-manager python-spice-client-gtkvirt-manager 图形界面的虚拟机管理
2020-09-29 09:55:41 690
原创 win10通过Hyper-v安装虚拟机
目录安装Hyper-v组件配置Hyper-V网络安装虚拟机新建虚拟机向导虚拟机设置安装系统安装Hyper-v组件控制面板 -> 程序和功能 -> 启用或关闭Windows功能 -> 选中Hyper-V -> 确定开始菜单 -> Windows管理工具 -> Hyper-v管理器配置Hyper-V网络打开虚拟交换机管理器创建虚拟交换机。一般使用内部或外部。外部网桥方式,相当于物理网卡。内部nat方式,可以连接主机,可以通过主机上网。专用虚拟机使用
2020-09-29 09:47:25 423
dotpgstmt.sh
2020-09-29
dotpgstmt.sh基于graphviz画图工具绘制语法结构树
2020-09-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人