摘要:
昨天一同事碰到一奇怪的问题, 表单提交的参数多过了一定数量服务器端只得到前1000个参数,使用httpfildder查看,browser是发送了数据到服务器的,后google 之,ASP.NET 默认Post Form 参数集合有限制,可添加以下配置增加集合数,<appSettings> <add key="aspnet:MaxHttpCollectionKeys" value="1001" /></appSettings>具体的可参考http://support.microsoft.com/kb/2661403 阅读全文
摘要:
插入10W条记录,每条记录6个field,总共大约50个字节1.用正常的方式SQL Insert语句 289s2.每1000条打包成一个xml传输, SQL存储过程解析XML插入 15.71sxml 批量插入注意事项:1.注意XML需转义字符检查2.元素的内容放入cdata节中,避免不需要的转义 相差18倍。。。 阅读全文
摘要:
一.在开始之前先顺便复习一下C语言的预处理指令#define 定义一个宏#undef 取消一个宏定义#include 包含指定的源文件#if 根据常量表达式的值,有条件包含文本#ifdef 测试宏是否定义, 有条件包含一些文本#ifndef 与#ifdef相反#else 前面的测试条件失败,就包含一些文本#line 指定行号和文件名#elif 前面的测试失败,根据另一个常量表达式值有条件的包含一些文本defined 测试一个宏是否定义, 若已定义返回1,否则返回0宏参数字符串化## 宏参数连接,组合成单个标记#progma 指定依赖编译器信息#error 用指定的信息产一个编译器错误预定义的宏 阅读全文
摘要:
1.用以a=2,3,...,15为底,给0到1000的数字起名字,需要多少个不同的数字的名称?哪一种基底要求的数字名称最少?写了个小程序来测试,答案是4,需要8个数字名称.#include <stdio.h>#define START_BASE 2#define BASE_LIMIT 16#define NUMBER 1001int main(void){ int min_number_base = START_BASE; int min_number_count = NUMBER; int base; int count; int product; for(base=START_ 阅读全文
摘要:
进程也许是计算机科学史上最成功的人造概念之一,以前看其它的操作系统书时,也总是浓墨重彩,但遗憾的是,除了留一下点印象,始终无法形成形象思维,究其原因,通常上来就是抽象概念定义,接着是锁,信号量之类的,基本的都没有理解,后面的基本上也是扯蛋了。本书这一章的亮点是不空谈理论,先引导读者稍微思考一下本质问题,再马上进入实战。我们的程序以文件的形式存储在磁盘上,本质上就是一堆二进制编码,究竞要怎么样才能在计算机上运行?从计算机的角度来说,必须首先把程序加载到内存,并设置好相应的寄存器值,其中包括代码段,数据段,堆栈段。我们怎样知道这一块二进制编码那些是数据那些是代码呢,当然得按一定的格式来,在wind 阅读全文
摘要:
C code: #include <stdio.h> extern add(int,int); int main(int argc,char **argv) { int result = add(4,5); printf("result:%d\n",result); } assembly code: ;nasm -f elf add.s -o add.o [section .data] Message db "calcuated result:%d",0xa,0 [section .text] extern printf ;invoke c 阅读全文
摘要:
这一章的比较简短,没有太多的东东,不过内容感觉稍稍有些货不对版,标题是让操作系统走进保护模式,其实大部分内容是在讲述怎么样加载操作系统的Loader到内存.不过思路还是值得记录一下,引导扇区只有512byte,如果同时加载内核并初始化环境可能不够用,作者中间增加了一个Loader模块,引导扇区负责把Loader加载进内存并把控制权交给它,Loader负责加载内核初始化保护模式环境,并把控制权交给内核,内核开始启动.Loader是个com文件,同时也便于调试.背景知识点:CHS模式和LBA模式的转换CHS模式 (cylinder,head,sector) 是初始的硬盘寻址方法,你要如果要在硬盘. 阅读全文
摘要:
学完这一章后,我尝试来好好总结一下,发现在很难做到,因为相关的细节牵扯比较多,一不小心就必须要到具体的实现细节,而要了解这些细节Intel 开发手册已有清晰的描述.下面以问题的方式要来记录一下自已的一些体会.1. 为什么需要保护模式? 这跟操作系统历史的发展密切相关,在早期,操作系统是单进程,你输入一个命令就执行一个命令,像DOS.完了等待用户续继输入.这挺浪费计算机资源,人们希望同时运行多个任务,即同时运行多个进程.多进程会引起一系列的问题,这里说一下一个基本的问题,怎么样保证一个进程不非法访问其它进程的内存.学过8086CPU的人知道,这种CPU是相当阳春白雪,通过段:偏移的方式就可以访. 阅读全文
摘要:
1.安装VirtualBox 虚拟机2. 在VirtualBox中安装Ubuntu10.10 2. 安装基本的编译环境sudo apt-get install build-essential 3. 安装bochs,下载的版本是2.4.6 a)运行 ./configure --enable-debugger --enable-disasm 出现在以下错误 ERROR: X windows gui was selected, but X windows libraries were not foundgoogle后,运行以下命令解决 sudo apt-get install libx11-dev 阅读全文
摘要:
C与汇编代码的调用约定: 1. 后面的参数先入栈并且调用者负责还原堆栈 2. 被调用者通常要保持寄存器EBX,ESI,EDI,EBP,CS,DS,SS,ES的值,意思是如果使用了这些寄存器,要在返回时还原.3. 返回值整型使用EAX,64位使用EDX:EAX,指针使用EAX,浮点型使用st0. 4. 汇编的函数标号名根据编译环境使用或不使用下划线, GCC是不需要. 典型代码, Caller push dword 1 call subprogram add esp,4 Calleesubprogram label: push ebp mov ebp,esp ;code mov esp,ebp 阅读全文