自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

badman250的专栏

分享一个Linux性能诊断网站:http://linuxperformance.top/ ,访问有收获

  • 博客(1642)
  • 资源 (107)
  • 收藏
  • 关注

原创 第35部分-Linux x86 64位汇编 系统调用

第35部分-Linux x86 64位汇编 系统调用如果对Linux内核有一定的了解,那么理解起来会非常简单。系统调用是用户态程序陷入到内核态的API接口。 每个系统调用都有一个名称和调用号,调用号一旦确认就基本不会改变。现在Linux系统调用有三百多个。 64位系统中可以在文件中找到:arch/x86/entry/syscalls/syscall_64.tbl文件定义的是在Linux环境中可以通过man命令来获取。例如man 2 exit其中2表示m...

2020-05-31 11:09:59 598

原创 第34部分-Linux x86 64位汇编 优化

第34部分-Linux x86 64位汇编 优化内存优化编写高性能的汇编语言程序时,最好尽可能地避免内存访问。最快的方式是通过寄存器,但是不可能所有应用程序数据都保存在寄存器中。对于有数据缓存的处理器来说,内存中按照连续的顺序访问内存能够帮助提高缓存命中率,内存块会一次被读取到缓存中。 目前X86的缓冲块就是cacheline长度是64位,如果数据元素超过64位块必须是要次缓存操作才能获取或者存储内存中的数据元素。 Gas汇编器支持.align命令,用于在...

2020-05-31 11:09:14 353

原创 第33部分-Linux x86 64位汇编 交换数据-冒泡算法实现

第33部分-Linux x86 64位汇编 交换数据-冒泡算法实现数据交换指令如下:冒泡排序示例冒泡排序有两个循环逻辑,内层循环遍历数组,检查相邻的了两个数组值,找出哪个更大。外层循环控制总共执行了多少次内层循环。使用两个计数器ebx和ecx,ebx是内层循环,ecx是外层循环。如下:.section .datavalues: .int 105, 235, 61, 315, 134, 221, 53, 145, 117, 5 .int 0.section .t

2020-05-31 11:08:50 457

原创 第32部分-Linux x86 64位汇编 数据传输

第32部分-Linux x86 64位汇编 数据传输无符号条件传送指令无符号条件传送指令依靠进位、零和奇偶校验标志来确定两个操作数之间的区别。带符号条件传送指令如下:带符号条件传送指令使用符号和溢出标志表示操作数之间比较的状态。示例实例如下,查找数组中一系列整数中最大的一个。.section .dataoutput: .asciz "The largest value is %d\n";//定义字符串values: .int 105, 235, 61,

2020-05-31 11:07:56 329 1

原创 第31部分-Linux x86 64位汇编 移位指令

第31部分-Linux x86 64位汇编 移位指令乘法和除法是处理器上最为耗费时间的两种指令,但是运用移位指令可以提供快速的方法。移位乘法为了使整数乘以2的乘方,必须把值向左移位。可以使用两个指令使得整数值向左移位:SAL(向左算术位移)和SHL(向左逻辑位移)。移位除法通过移位进行除法操作涉及把二进制值向右移位。当把整数值向右移位时,必须要注意整数的符号。无符号整数,向右移位产生的空位可以被填充为零,而且不会有任何问题。不幸的事,对于带符号整数,使用零填充高位部分会对

2020-05-31 11:06:58 997

原创 第30部分-Linux x86 64位汇编 乘法/除法

第30部分-Linux x86 64位汇编 乘法/除法乘法无符号整数乘法mul如下,目标操作数总是eax寄存器的某种形式。使用IMUL可以进行有符号乘法。在只有一个操作数的情况下,结果保存到指定的目标寄存器EAX或寄存器的某种形式,这个同MUL。IMUL支持2个操作数。imul source,destinationIMUL支持3个操作数。imul multiplier,source,destination其中multiplier是一个立即值。乘法实例.sec

2020-05-30 09:47:17 1256

原创 第29部分-Linux x86 64位汇编 加法指令

第29部分-Linux x86 64位汇编 加法指令adc指令可以执行两个无符号或者带符号整数值的加法,并且把前一个ADD指令产生的进位标志的值包含在其中。为了执行多组多字节的加法操作,可以把多个ADC指令链接在一起。示例代码如下:.section .datadata1: .quad 11111111,7252051615;//16字节整数data2: .quad 22222222,5732348928;//16字节整数output: .asciz "The res

2020-05-30 09:46:00 957

原创 第28部分- Linux x86 64位汇编 宏定义和函数

第28部分- Linux x86 64位汇编 宏定义和函数在前面的例子移植中,我们知道NASM 使用resb、resw和resd关键字在 BSS 部分中分配字节、字和双字空间。GAS 使用.lcomm关键字分配字节级空间。Gas汇编器宏Linux 平台的标准汇编器是 GAS。GAS 提供.macro和.endm指令来创建宏。.macro指令后面跟着宏名称,后面可以有参数,也可以没有参数。宏参数是按名称指定的。.macro write_string p1,p2 ...

2020-05-30 09:45:24 1068

原创 第27部分- Linux x86 64位汇编 寄存器

第27部分- Linux x86 64位汇编 寄存器64位时候X86处理器的寄存器如下图:《Computer Systems A Programmer's Perspective, 3rd Edition》文件中有这图。re64和32位的差异是:64位有16个寄存器,32位只有8个。但是32位前8个都有不同的命名,分别是e开头,而64位前8个使用了r代替e。e开头的寄存器命名依然可以直接运用于相应寄存器的低32位。而剩下的寄存器名则是从r8 - r15,其低位分别用d,w,b指定长度。

2020-05-30 09:42:24 942

原创 第26部分- Linux x86 64位汇编 字符串操作反转实例

第26部分- Linux x86 64位汇编 字符串操作反转实例有了上面几个深入的语法知识后,我们继续来学习一个例子。我们出两个版本的例子,实现字符串的反转效果。AT&T汇编实现将上诉的Intel汇编程序,我们改写成AT&T语法后汇编如下,这里将原来的mov rdi, $ + 15地方进行的修改,变成jmp命令了,jmp过去jmp回来,就不用涉及到栈中的函数地址了。因为NASM 提供特殊的变量($和$$变量)来操作位置计数器。在 GAS 中,无法操作位置计数器,必须...

2020-05-30 09:41:14 618 1

原创 第25部分- Linux x86 64位汇编 字符串扫描

第25部分- Linux x86 64位汇编 字符串扫描扫描字符串可以使用SCAS指令。提供了扫描字符串搜索特定的一个字符或者一组字符。 SCAS指令系统包含:SCASB,SCASW,SCASL,SCASQ使用EDI寄存器作为隐含的目标操作数。EDI寄存器必须包含要扫描的字符串的内存地址。递增和递减取决于DF标志。 比较时,会相应的设置EFLAGS的辅助进位,进位,奇偶校验,溢出、符号和零标志。把EDI寄存器当前指向的字符和AL寄存器的字符进行比较,和CMPS...

2020-05-30 09:40:04 614

原创 第24部分- Linux x86 64位汇编 字符串比较

第24部分- Linux x86 64位汇编 字符串比较比较字符串可以使用CMPS指令系列。CMPSB,CMPSW,CMPSL,CMPSQ。隐含的源和目标操作数的位置同样存储在ESI和EDI寄存器中。每次执行CMPS指令时,根据DF标志的设置。CMPS指令从源字符串中减去目标字符串,并且适当地设置EFLAGS寄存器的进位、符号、溢出、零、奇偶校验和辅助进位。使用之后可以使用跳转指令跳转到分支。 REP指令也可以用于跨越多个字节重复进行字符串比较。由于REP指令不在两个重复...

2020-05-30 09:37:55 464

原创 第23部分- Linux x86 64位汇编 字符串存储加载

第23部分- Linux x86 64位汇编 字符串存储加载除了字符串从一个内存位置传送到另一个内存位置外,还有用于把内存中的字符串值加载到寄存器以及传会至内存位置中的指令。lodslods指令把内存中的字符串值传送到EAX寄存器中。有多种格式:lodsb, lodsw, lodsl,lodsq使用ESI寄存器作为隐藏的源操作数。stosSTOS指令可以把EAX寄存器中的数据存放到一个内存位置中。有STOSB,STOSW,STOSL,STOSQ。使用EDI寄存器作为.

2020-05-30 09:37:14 405

原创 第22部分- Linux x86 64位汇编 字符串传送REP

第22部分- Linux x86 64位汇编 字符串传送REPREP指令REP指令本身不执行什么操作,指令可以按照特定次数重复执行字符串指令,由ECS寄存器中的值进行控制。类似循环,但是不需要额外的loop指令。Rep指令重复执行紧跟其后的字符串指令,知道ECX寄存器中的值为0.此外,还有一些REP指令如下:其中REPE和REPZ同义词。REPNE和REPNZ指令是同义词。示例.extern printf ;//调用外部的printf函数.section ..

2020-05-30 09:36:28 474

原创 第21部分- Linux x86 64位汇编 字符串传送MOVS

第21部分- Linux x86 64位汇编 字符串传送MOVSMOVS指令MOVS指令把字符串从一个内存位置传送到另一个内存位置。MOVS有多种格式:MOVSB,MOVSW,MOVSQMOVS指令使用隐含的源和目标操作数。源操作数是ESI寄存器,指向源字符串,目标操作数是EDI寄存器,指向字符串要被复制到的目标内存位置。每次数据传送后,ESI和EDI寄存器会自动改变。可以自动递增也可以自动递减,取决于EFLAGS寄存器的DF表示。CLD用于将DF标志清零。STD用于设置DF标志位。

2020-05-30 09:35:11 774

原创 第20部分-Linux x86 64位汇编 AT&T语法深入

第20部分-Linux x86 64位汇编 AT&T语法深入字符串汇编语法Intel汇编和AT&T的语法基本一致。有如下:(1) lodsb、lodsw:把DS:SI指向的存储单元中的数据装入AL或AX,然后根据DF标志增减SI(2) stosb、stosw:把AL或AX中的数据装入ES:DI指向的存储单元,然后根据DF标志增减DI(3) movsb、movsw:把DS:SI指向的存储单元中的数据装入ES:DI指向的存储单元中,然后根据DF标志分别增减SI和DI(

2020-05-23 14:56:44 529

原创 第19部分- Linux x86 64位汇编GDB单步调试

第19部分- Linux x86 64位汇编GDB单步调试本篇我们使用gdb来调试上篇中的汇编代码。gdb调试使用gdb进行调试。#gdb ./addsum_arg设置参数:(gdb) set args 1 1#启动程序(gdb) r #查看寄存器(gdb) i r rcx 可以看到启动进程时候rcs为0.查看rsp寄存器对应的地址.(gdb) i r rsprsp 0x7fffffffe3d0 0x7fffffffe3d...

2020-05-23 14:56:13 964

原创 第18部分-Linux x86 64位汇编 AT&T实现栈

第18部分-Linux x86 64位汇编 AT&T实现栈我们根据上篇中AT&T汇编语法改造之前栈篇的代码如下。主要好处是通过as编译后,可以通过gdb进行debug。.section .data .equ SYS_WRITE,1 .equ STD_IN,1 .equ SYS_EXIT,60 .equ EXIT_CODE,0 .equ NEW_LINE,0xa WRONG_ARGC: .ascii "Must be two co

2020-05-23 14:55:32 450

原创 第17部分-Linux x86 64位汇编 命令行参数

第17部分-Linux x86 64位汇编 命令行参数使用命令行参数示例在堆栈中命令行参数被存储为字符串值。需要进行转换工作,转换为数字。可以使用C库函数的:atoi:把ASCII字符串转换为短整数值atol:把ASCII字符串转换为长整数值atof:把ASCII字符串转换为双精度浮点值这些函数需要将字符串位置的指针必须放置堆栈中。atoi函数结果返回到EAX寄存器中。Atol的结果存放在EDX:EAX寄存器中,需要64位。函数atof结果返回到fpu的st0寄存器中。

2020-05-23 14:54:46 496

原创 第16部分-Linux x86 64位汇编 命令行参数

第16部分-Linux x86 64位汇编 命令行参数查看环境变量示例.extern printf ;//调用外部的printf函数.section .dataoutput: .asciz "%s\n"resultstr: .ascii "Area result is %f.\n".section .text.globl _start_start: mov %rsp, %rbp;//rsp移动到rbp add $24, %rbp;//指向第一个环境变量

2020-05-23 12:48:45 390

原创 第15部分-Linux x86 64位汇编 命令行参数

第15部分-Linux x86 64位汇编 命令行参数程序启动时,一些应用程序需要在命令行中指定输入参数。不同的操作系统使用不同的方法把命令行参数传递给程序。 程序启动时候,Linux把如下4种类型的信息存放到程序堆栈中。 命令行参数的数目/shell提示符执行的程序的名称/命令行中包含的任何命令行参数/程序启动时所有当前Linux的环境变量。 而且这些元素的指针加载到堆栈中可以方便定位。程序启动时候,堆栈的一般布局如下:查看命令行参数...

2020-05-23 12:46:44 443

原创 第14部分-Linux x86 64位汇编 命令行参数

第14部分-Linux x86 64位汇编 命令行参数以上篇中编译的的funcmain为例。使用gdb进行调试。#gdb -q funcmain(gdb) b *_start+1(gdb)r(gdb) print /x $rsp$3 = 0x7fffffffde90(gdb) x /20x 0x7fffffffde900x7fffffffde90: 0x00000001 0x00000000 0xffffe268 0x00007fff0x...

2020-05-23 12:38:46 412

原创 第13部分-Linux x86 64位汇编 独立函数文件

第13部分-Linux x86 64位汇编 独立函数文件将各个函数字自包含在自己的文件中,并且连接在一起成为最终产品。函数的文件不需要使用_start段。不过需要将函数名字声明为全局标签,以便其他程序能够访问,使用.globl命令来完成。例如:.section .text.type area,&function.globl areaarea:示例函数文件:文件为area.s.section .text.type area, @function;//定义

2020-05-23 12:35:36 335

原创 第12部分-Linux x86 64位汇编 函数C样式传递

第12部分-Linux x86 64位汇编 函数C样式传递因为输入值和输出值可用的选择很多,这样哪个函数使用哪些寄存器和全局变量,或者哪些寄存器和全局变量传递哪些参数会是程序员的噩梦。为此需要一个标准,使用某一标准一致地存放输入参数以便函数获取,一致地存放输出值便于主程序获取。 C把输入值传递给函数的解决方案是使用堆栈。C定义了返回主程序的值是用EAX,浮点用ST(0). C样式要求参数存放到堆栈中的顺序和函数的原型中的顺序相反。.extern prin...

2020-05-22 23:49:31 394

原创 第11部分-Linux x86 64位汇编 函数完整示例

第11部分-Linux x86 64位汇编 函数完整示例调用函数示例这里开始使用到64位的寄存器了,编译的也是64位可执行程序了。.extern printf ;//调用外部的printf函数.section .dataresult: .ascii "Area result is %f.\n" .byte 0x0a,0x0precision: .byte 0x7f, 0x00.section .bss .lcomm value, 4 .lcomm ar

2020-05-17 12:50:14 461

原创 第10部分-Linux x86 64位汇编 函数调用规则

第10部分-Linux x86 64位汇编 函数调用规则汇编语言程序中创建函数需要3个步骤。定义需要的输入值 定义对输入值执行的操作 定义如何生成输出值以及如何把输出值传递给发出调用的程序。定义输入值可以使用寄存器,全局变量或者堆栈。使用寄存器时候要注意,如果被调用的函数修改主程序使用的寄存器,那么在被调用之前保存寄存器的当前状态,并且在函数返回之后恢复寄存器的状态。可以使用PUSH和POP,或者PUSHA和POPA。 全局变量是在内存中的位置,程序中所有函数都可以访问这些...

2020-05-17 12:49:10 600

原创 第9部分-Linux x86 64位汇编 AT&T汇编示例四

第9部分-Linux x86 64位汇编 AT&T汇编示例四示例——输出字符串如下代码示例:.data # 数据段声明 msg : .string "Hello, world!\\n" # 要输出的字符串 len = . - msg # 字串长度.text # 代码段声明.global _start # 指定入口函.

2020-05-17 12:47:12 476

原创 第8部分-Linux x86 64位汇编 AT&T汇编示例三

第8部分-Linux x86 64位汇编 AT&T汇编示例三示例——求指数这里几个例子还是使用的32位的寄存器,后面会渐渐过渡到64位的寄存器。在求指数中,我们定义了函数,通过函数来实现指数求解(这里实现的23+52=33,将参数写入了代码中)。.section .data.section .text.code32.globl _start _start:pushl $3 #压栈第二个参数pushl $2 #压栈第一个参数call power #调用函数a

2020-05-17 12:46:20 604

原创 第7部分-Linux x86 64位汇编 AT&T汇编示例二

第7部分-Linux x86 64位汇编 AT&T汇编示例二示例——找出最大值代码max.s如下:# %edi - 被检查数据条目的索引# %ebx – 最大数据条目 # %eax – 当前数据条目# # The following memory locations are used:# # data_items – 保持数据条目. 0用于接收数据条目.section .datadata_items: #数据.long 3,67,34,222,45,75,54,3

2020-05-17 12:44:40 547

原创 第6部分-Linux x86 64位汇编 AT&T汇编示例一

第6部分-Linux x86 64位汇编 AT&T汇编示例一示例——退出最简单的汇编推出示例如下,.section .data.section .text .globl _start_start:movl $1, %eax # 退出程序的调用码movl $0, %ebx #返回给操作系统的状态# 调用内核执行退出代码int $0x80进行汇编,得到对象文件。#as exit.s -o exit.o然后通过连接器将对象文件放在一起并加入信息,这.

2020-05-17 12:43:50 627 1

原创 第5部分-Linux x86 64位汇编 AT&T汇编

第5部分-Linux x86 64位汇编 AT&T汇编 关于调试我们放到后面,因为这篇开始还是进入本系列的正题了。 学习了前面的INTEL 汇编,开始使用AT&T汇编了。 不是所有汇编器使用的标准都一样的,不通汇编器使用不同的汇编语法。 关于AT&T汇编,也就是基于gas汇编器的。可以参考书籍《Programming Ground Up》。 AT&T汇编程序的结构跟其它汇编语言类似,由directives, labels, ...

2020-05-16 12:01:41 1034

原创 第4部分-Linux x86 64位汇编Intel汇编语法三

第4部分-Linux x86 64位汇编Intel汇编语法三 栈是FIFO结构。 64位的X86处理器有16个通用寄存器RAX, RBX, RCX, RDX, RDI, RSI, RBP, RSP and R8-R15。对于应用来说太少了,所以需要存储数据到栈中。 栈的另一个用途是,调用函数时候,地址通过压栈,当函数执行结束后可以返回地址,在原先地方继续执行。函数调用例如:global _startsection .text_start: mov...

2020-05-16 11:56:39 979

原创 第3部分-Linux x86 64位汇编Intel汇编语法二

第3部分-Linux x86 64位汇编Intel汇编语法二特殊符号 $和$$是编译器 NASM 预留的关键字,用来表示当前行和本 section 的地址,起到了标号的作用,是 NASM 提供的,并不是 CPU 原生支持的,相当于伪指令一样。 $是编译器给当前行安排的地址,每行都有。 $$指代本 section 的起始地址,此地址同样是编译器给安排的。 nasm 默认全部代码同为一个 section,起始地址为 0。section 也称为节、段,程序中的一小块。...

2020-05-16 11:54:13 680

原创 第2部分-Linux x86 64位汇编Intel汇编语法一

上篇中,我们提到的语法都是基于Intel的汇编语法。与之对应的是AT&T汇编,也是Linux内核中的汇编语法。我们先学习intel汇编,主要是Intel的汇编和大学里面的教程一致,更加顺手。先来复习下几个概念,然后会增加例子来进行实践汇编中的术语和概念第一步部分中只是个引子,这部分中进行术语的描述。寄存器,是位于处理器中的小存储。处理器可以从内存获取数据,但是很慢,所以需要内部存储数据的存储即寄存器。有16个通用的寄存器:rax, rbx, rcx, rdx, rbp,

2020-05-14 23:07:04 1051

原创 第1部分-Linux X86 64位汇编 hello world

汇编让人着迷,本来想温习下,结果变成了一个系列。准备工作准备通过一台可以上网的ubuntu系统机器(现在默认是64位机器了),其实其他系统也可以,只是ubuntu方便安装工具,例如nams,所以便于学习。通过命令#apt install nasm就可以完成汇编器的安装。引子每天可以写出大量的程序,例如:#include <stdio.h>int main() { int x = 10; printf("hello world,I get %d!\n", x)

2020-05-14 23:00:18 1641 2

原创 ELF中PLT和GOT工作机制简介-可还原

以实际的Hello World小程序为例子,作为动态库的学习材料。开章上个图,看完明白这个图。1.编译过程以最简单的 Hello world为例 #include <stdio.h> int main() { printf("hello, world\n"); return 0; } ...

2020-05-03 19:21:37 2359

原创 kgdb跟踪调试模块

​​​​​​查看模块地址:/sys/module/xfs/sections/.text .data .bss#cat /sys/module/xfs/sections/.text0xffffffffa0117000# cat /sys/module/xfs/sections/.data0xffffffffa01bb000# cat /sys/module/xfs/sec...

2020-02-01 22:06:11 496

原创 计算机中失败的传奇

计算机中失败的传奇数字计算机的传奇开始于18世纪......英国数学家查尔斯·巴贝奇Charles Babbage(银行家庭,富二代)在1834年设计了第一台分析机(数字计算机前身,能够自动解算有100个变量的复杂算题,每个数可达25位,速度可达每秒钟运算一次),也曾设想根据储存数据的穿孔卡上的指令进行任何数学运算的可能性,并设想了现代计算机所具有的大多数其他特性,由于是纯机械的,当时加工精...

2020-01-16 00:00:27 789

原创 Ubuntu一些命令

Ubuntu安装KVMsudo apt updatesudo apt install qemu qemu-kvm libvirt-bin bridge-utils virt-manager将libvirtd添加自启动sudo systemctl start libvirtd.servicesudo systemctl enable libvirtd.service...

2019-11-18 20:38:35 720

原创 RDMA编程用户手册-官方中文版-1.7

因为工作需要,将这个 Mellanox 的编程用户手册翻译成了中文,便于大家 学习参考。其中第一章和第二章参考了网络上的一些已有翻译,并做了部分纠 错。其他借助了 google 翻译。发布时候我会同时上传英文原版和翻译版,以便 纠错。下载链接:https://download.csdn.net/download/notbaron/11050501...

2019-03-23 12:07:03 3189

HammerDB作者优化指南

HammerDB作者优化指南

2018-07-21

DB2_docview

WebSphere Application Server - Service Integration Bus Messaging Engine Data Store Connectivity Problems and Solutions

2018-07-21

Oracle-NUMA绑定脚本

Oracle-NUMA绑定脚本Oracle-NUMA绑定脚本Oracle-NUMA绑定脚本Oracle-NUMA绑定脚本Oracle-NUMA绑定脚本Oracle-NUMA绑定脚本

2018-07-21

HP Superdome X扩展性

HP Superdome X扩展性HP Superdome X扩展性HP Superdome X扩展性HP Superdome X扩展性HP Superdome X扩展性HP Superdome X扩展性

2018-07-21

Linux块层技术剖析-v0.1

Linux块层技术剖析-v0.1Linux块层技术剖析-v0.1Linux块层技术剖析-v0.1Linux块层技术剖析-v0.1Linux块层技术剖析-v0.1Linux块层技术剖析-v0.1

2018-07-21

Infrastructure_Matters_POWER8_vs_XEON_x86-IBM官网引导的报告-中文

Infrastructure_Matters_POWER8_vs_XEON_x86-IBM官网引导的报告-中文

2018-07-19

oracle数据库大会6共6个

oracle数据库大会6共6个oracle数据库大会6共6个oracle数据库大会6共6个oracle数据库大会6共6个oracle数据库大会6共6个oracle数据库大会6共6个oracle数据库大会6共6个

2018-07-19

oracle数据库大会4

oracle数据库大会4共6个材料oracle数据库大会4共6个材料oracle数据库大会4共6个材料oracle数据库大会4共6个材料oracle数据库大会4共6个材料oracle数据库大会4共6个材料oracle数据库大会4共6个材料

2018-07-19

oracle数据库大会3

oracle数据库大会3共6个材料oracle数据库大会3共6个材料oracle数据库大会3共6个材料oracle数据库大会3共6个材料

2018-07-19

oracle数据库大会2

oracle数据库大会2oracle数据库大会2oracle数据库大会2oracle数据库大会2共6个部分

2018-07-19

oracle数据库大会材料1

oracle数据库大会材料,共6个。oracle数据库大会材料,共6个。oracle数据库大会材料,共6个。oracle数据库大会材料,共6个。oracle数据库大会材料,共6个。oracle数据库大会材料,共6个。

2018-07-19

CON1101_Crawford_jr-CON1477_Hu_ExadataMAA-Best-Practice_v2_EN_

CON1101_Crawford_jr-CON1477_Hu_ExadataMAA-Best-Practice_v2_EN_CON1101_Crawford_jr-CON1477_Hu_ExadataMAA-Best-Practice_v2_EN_CON1101_Crawford_jr-CON1477_Hu_ExadataMAA-Best-Practice_v2_EN_

2018-07-19

459334-oracle_vm3-application-driven_virtualization

459334-oracle_vm3-application-driven_virtualization459334-oracle_vm3-application-driven_virtualization459334-oracle_vm3-application-driven_virtualization459334-oracle_vm3-application-driven_virtualization

2018-07-19

129255-oracle_timesten_in-memory_database

129255-oracle_timesten_in-memory_database129255-oracle_timesten_in-memory_database129255-oracle_timesten_in-memory_database129255-oracle_timesten_in-memory_database

2018-07-19

SPECjEnterprise 2010 Performance Update

SPECjEnterprise 2010 Performance UpdateSPECjEnterprise 2010 Performance UpdateSPECjEnterprise 2010 Performance UpdateSPECjEnterprise 2010 Performance Update

2018-07-19

oracle循环插入

oracle循环插入oracle循环插入oracle循环插入oracle循环插入oracle循环插入oracle循环插入oracle循环插入oracle循环插入

2018-07-19

SQL Server健康查询

SQL Server健康查询SQL Server健康查询SQL Server健康查询SQL Server健康查询SQL Server健康查询SQL Server健康查询SQL Server健康查询

2018-07-19

HammerDB测试TPC-H

HammerDB测试TPC-HHammerDB测试TPC-HHammerDB测试TPC-HHammerDB测试TPC-HHammerDB测试TPC-HHammerDB测试TPC-H

2018-07-19

HP ATX性能套件

HP ATX性能套件HP ATX性能套件HP ATX性能套件HP ATX性能套件

2018-07-19

华为高性能服务器DB2技术交流材料

基于IBM DB2、WAS的SPECvirt解决方案测试指导

2018-07-19

甲骨文智慧城市解决方案

甲骨文智慧城市解决方案甲骨文智慧城市解决方案甲骨文智慧城市解决方案

2018-07-19

智慧城市案例、材料

智慧城市案例、材料智慧城市案例、材料智慧城市案例、材料智慧城市案例、材料智慧城市案例、材料智慧城市案例、材料智慧城市案例、材料

2018-07-19

企业入云材料案例

企业入云材料案例

2018-07-19

MRD_Early_Bird_Training

MRD_Early_Bird_TrainingMRD_Early_Bird_TrainingMRD_Early_Bird_TrainingMRD_Early_Bird_Training

2018-07-19

去IOE案例、方案

去IOE案例、方案去IOE案例、方案去IOE案例、方案去IOE案例、方案去IOE案例、方案去IOE案例、方案

2018-07-19

大数据数据质量

大数据数据质量大数据数据质量大数据数据质量大数据数据质量大数据数据质量大数据数据质量大数据数据质量大数据数据质量大数据数据质量

2018-07-19

oracle-实时决策(In-memory)-案例-材料

oracle-实时决策(In-memory)-案例-材料oracle-实时决策(In-memory)-案例-材料oracle-实时决策(In-memory)-案例-材料oracle-实时决策(In-memory)-案例-材料oracle-实时决策(In-memory)-案例-材料

2018-07-19

DWGL数据仓库全球领导课程

DWGL数据仓库全球领导课程DWGL数据仓库全球领导课程DWGL数据仓库全球领导课程DWGL数据仓库全球领导课程DWGL数据仓库全球领导课程DWGL数据仓库全球领导课程

2018-07-19

Exadata-的核心进程-SHOUG成员Steven.Lee_.pdf

Exadata-的核心进程-SHOUG成员Steven.Lee_.pdfExadata-的核心进程-SHOUG成员Steven.Lee_.pdfExadata-的核心进程-SHOUG成员Steven.Lee_.pdfExadata-的核心进程-SHOUG成员Steven.Lee_.pdfExadata-的核心进程-SHOUG成员Steven.Lee_.pdf

2018-07-19

DTCC2016中国数据库技术大会会议全部材料

DTCC2015中国数据库技术大会会议全部材料DTCC2015中国数据库技术大会会议全部材料DTCC2015中国数据库技术大会会议全部材料

2018-07-19

DTCC2015中国数据库技术大会会议全部材料

DTCC2015中国数据库技术大会会议全部材料DTCC2015中国数据库技术大会会议全部材料DTCC2015中国数据库技术大会会议全部材料

2018-07-19

tesseract-ocr-setup-4.0.0.zip

tesseract-ocr-setup-4.0.0,解压密码123456

2021-08-01

Modern Microprocessors - A 90-Minute Guide!.pdf

处理器90分钟公开教程

2019-11-18

RDMA编程用户手册-官方中文版

因为工作需要,将这个 Mellanox 的编程用户手册翻译成了中文,便于大家 学习参考。其中第一章和第二章参考了网络上的一些已有翻译,并做了部分纠 错。其他借助了 google 翻译。发布时候我会同时上传英文原版和翻译版,以便 纠错。

2019-03-23

multitenant多租户

multitenant多租户 multitenant-wp-12c-1949736.pdf

2018-08-10

SPECVirt极限调优

SPECVirt极限调优

2018-07-24

09 SYBASE官方文档合集

09 SYBASE官方文档合集09 SYBASE官方文档合集09 SYBASE官方文档合集09 SYBASE官方文档合集09 SYBASE官方文档合集

2018-07-24

Linux虚拟文件系统全面剖析——打开、读、写逻辑v0.1

Linux虚拟文件系统全面剖析——打开、读、写逻辑v0.1Linux虚拟文件系统全面剖析——打开、读、写逻辑v0.1Linux虚拟文件系统全面剖析——打开、读、写逻辑v0.1Linux虚拟文件系统全面剖析——打开、读、写逻辑v0.1Linux虚拟文件系统全面剖析——打开、读、写逻辑v0.1

2018-07-24

db2perfsupport使用指南

db2perfsupport使用指南db2perfsupport使用指南db2perfsupport使用指南db2perfsupport使用指南db2perfsupport使用指南

2018-07-19

Linux NUMA 进化

Linux NUMA 进化Linux NUMA 进化Linux NUMA 进化Linux NUMA 进化Linux NUMA 进化

2018-07-19

空空如也

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

TA关注的人

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