- 博客(74)
- 资源 (4)
- 收藏
- 关注
原创 关于wasm micro runtime堆的大小的指定
关于wasm micro runtime堆的大小的指定在实际应用中,我们需要定制一个wasm解释器,并在wasm解释器启动后,运行事先编译后的wasm字节码程序中的某个函数。wasm程序可以是一个单独的.wasm文件,也可以将.wasm文件的内容作为一个数组定义,嵌入在wasm解释器的程序中。无论哪种情况,如果.wasm客户程序的函数需要动态分配内存的话,在初始化wasm解释器时,需要指定堆的大小。在指定堆的大小时,如果参数指定不当,wasm的函数在非配内存时,可能失败。通过下面的例子,我们给出一个示范,
2021-03-14 22:42:56
699
原创 关于c语言realloc函数分配的内存上限测试
关于c语言realloc函数分配的内存上限测试1.测试环境2.测试方法之一,使用realloc函数不断分配更多的内存2.1测试方法2.1.1 首先使用malloc分配51.2MB内存2.1.2. 然后反复调用执行下面的步骤,看看可分配的内存上限是多少.2.2.测试结果2.2.1.开始,可用内存13GB左右,swap分区使用率为0%2.2.2.调用realloc,多数情况下,只需10-30微秒,少数...
2020-04-03 18:49:30
755
原创 排序算法从入门到精通之九--性能测试
该文对几种较快的排序算法做了性能测试。测试的算法包括希尔排序,归并排序和快速排序。由于冒泡排序,插入排序,选择排序速度较慢,我们这里没有给出数据。所有几种算法在同一个程序中运行,使用同样的数据。通过修改宏MAX_LEN的值,我们对数据规模为1百万,2百万和4百万分别做的测试。 我们做了2轮测试,第一轮测试中,归并排序中调用merge_v1, 第二轮测试中归并排序调用merge_v2_asm. 下面...
2018-04-14 23:28:39
469
原创 排序算法从入门到精通之八--堆排序
编辑重了,不知怎么删除,请参阅排序算法从入门到精通之八--堆排序_liangbch的专栏-CSDN博客排序算法从入门到精通之九--性能测试
2018-04-14 22:54:02
238
原创 排序算法从入门到精通之七--归并排序
这篇文章讲述了归并排序的算法并给出一个优化的实现。通常,快速排序被认为是最快的算法,但是从算法性能这个方面讲,归并排序是快速排序的有力竞争者,他甚至比快速排序更快。快速排序的缺点是性能不稳定,特定的数据分布会导致排序性能变差。而归并排序是稳定的排序,其性能和数据的分布无关。归并排序的缺点是需要的内存空间比较大。
2018-04-14 22:27:55
927
原创 排序算法从入门到精通之六--快速排序
快速排序的算法是一种分而治之的算法,是一个递归算法。在通常情况下,快速排序算法是已知的最快的算法,故称这个算法为快速排序。其方法是:1.首先找出一个枢轴元素base。2.扫描待排序的数组,将这个数组划分为2部分,使左部分的所有元素小于等于base,右部分的所有元素大于base。3.对左部分的子数组继续做这个操作。4.对右部分的子数组做同样的操作。5.继续递归下去,直到数组的长度小于为1。
2018-04-14 10:42:07
416
原创 排序算法从入门到精通之四--插入排序
插入排序和选择排序的复杂度相同,当数据基本有序或者数组的规模比较小时,这个排序算法的效果最好,故可用作其他排序的子过程,如快速排序,归并排序。
2018-04-13 17:52:01
267
原创 排序算法从入门到精通之三--选择排序
这个算法的复杂度和冒泡排序相同,相对于冒泡排序,这个算法减少了交换次数。算法描述:1.这个算法将待排序的数组分成左右2部分,左部分已经排好的,右部分是尚未排好的。左部分中,其最大的元素(最末的元素)总是小于等于右部分的任意一个元素。一开始,左部分为空,右部分是整个数组,随着排序的继续进行,左部分增加扩大,右部分逐渐减小,直到右部分为空为止。2. 每趟扫描过程中,检查右部分的所有元素,并找出最小的那...
2018-04-13 17:32:37
192
原创 排序算法从入门到精通之二---冒泡排序
冒泡排序是最朴素的排序算法。其过程就像烧水过程一样,大的水泡从壶底一步一步冒出来,直到水面以上。其基本思想是 1. 扫描整个数组,若数组长度为n,第一趟扫描过程中,下标j从0到n-2, 依次比较arr[j] 与 arr[j+1] ,若前者大于后者交换这两个元素。2. 第一趟扫描完成后,最大的那个元素已经放到数组末尾,所有最后的那个元素已经就位。所以第2次扫描时,只需考虑前n-1个元素,故下标j 从...
2018-04-13 17:11:11
184
原创 排序算法从入门到精通之一公用文件
从这篇文章开始,我将陆续介绍几种排序算法,内容包括算法描述,源代码,性能测试报告等。要介绍的排序算法有冒泡排序,选择排序,插入排序,希尔排序,快速排序,归并排序,堆排序。所有的代码可包括在一个VC工程文件之中。这里写给出这些排序子程序使用的公共头文件和时间测试函数。所有代码为标准的C语言代码。我这里没有使用C++的特性。
2018-04-13 16:48:53
201
原创 Visual studio 与字符编码浅析
摘要:本文试图简单的说明Visual studio 2013 对于字符串编码的处理,和一些乱码问题的处理方法。关于字符编码1. 西方文字的编码。1.1 ASCII 码,ASCII是通用的英文字符的编码,对于英文字符,他采用7位2进制数来表示一个英文字符,我们知道1个byte包含8个bit,对于ASCII码来说,最高bit为0.1.2 ISO 8859,西方广泛使用的编码标准。用于西方文字,有256...
2018-03-19 15:08:57
5193
原创 VS2013 启动缓慢的原因分析和解决方法
摘要:Visual studio 2013相对于VS2010做了很多改进,支持C++11. 但也有一些副作用,给我们带来不便。作者发现一个VS2013的一个严重问题,在一定的情况下,VS2013的启动非常缓慢,并拖慢了整个系统。本文梳理和分析了这个问题,并给出应对方案。近来,我将VS2010换到2013,以支持Qt的32位和64位编译。但是在换到VS2013后,发现几个问题。1.之前可被VS201...
2018-03-18 12:04:23
10754
1
原创 Qt 编译Oracle驱动
1. 确保你的电脑安装了Oracle,请首先确认其ABI是64位的或者32位的。 2. 请找出你的Oracle SDK的目录。我的电脑安装的是64位的Oracle 11g,安装在D:\app\lbc\product\11.2.0\dbhome_1 目录下,SDK 的inlcude目录是 D:\app\lbc\product\11.2.0\dbhome_1\OCI\include,lib文件所在的目...
2018-03-16 23:00:10
2247
原创 Visual Studio 2013 的兼容性问题
1. Visual Studio 2013 不能编译旧的工程文件的问题。将开发工具升级到Microsoft Visual Studio 2013后,你会发现,之前在VS2010可正确编译的文件在VS2013下不能工作了。比如你可能遇到不能找到windows.h之类的问题。这是因为,VS2013默认的头文件目录不再包含windows.h. Visual studio 2013 有一个《平台工具...
2018-03-16 12:22:22
3126
原创 Oracle 和 Mysql 的整数类型
1. MySQL整数数据类型 MySQL有丰富的数据类型,就整数而言,MySQL提供了多达5种整数类型,见下表类型字节最小值最大值 (带符号的/无符号的)(带符号的/无符号的)TINYINT1-128127 0255SMALLINT2-3276832767 065535MEDIUMINT3-83886088388607 016777215INT4-2147483648214748364...
2018-03-02 12:39:47
3291
原创 二叉树的某些函数的实现
本文给出二叉树操作中某些功能的一个实现,个别函数用到STL的stack。本文包含的功能有 1. 二叉树的前序遍历,递归形式。BinaryTree_preorderTraversal 2. 二叉树的前序遍历,非递归形式,要用到stack。函数名BinaryTree_preorderTraversalUseStack 3. 求二叉树的高度。函数名BinaryTree_height 4....
2018-02-13 23:03:12
313
原创 STL应用-使用后缀表达式求表达式的值
1.关于中缀表达式和后缀表达式 我们常见的表达式是中缀表达式形式,即二元运算符在两个操作数的中间,如“3+4*5” 而后缀表达式则是运算符位于两个操作数之后。 如“3+4*5”转化为后缀表达式为“3 4 5 * +”2.基本思路 1.我们首先将中缀表达式转化为后缀表达式 2.对后缀表达式求值3.具体实现 3.1 将中缀表达式转化为后缀表达式 3.1.1 数据结构: ...
2018-02-13 16:06:30
558
原创 重大消息-一种新的任意精度对数算法研制成功
重大消息,近日,由我自己独创的对数log(x)算法终于定型。其复杂度与当前公开发表的最好的算法AGM同,都是O(log(P)M(P)),p为精度,其中M(P)代表两个P位整数相乘所需要的基本运算的次数。但是我的算法有很小的常数因子,故速度更快。测试报告显示,这个算法的性能是非常令人振奋的,在100-10000位精度下,可比现在最快软件Mathematica快2.8到8倍。计算一个正数的对数精...
2018-01-04 11:31:01
374
原创 AGM函数近似值的估计
AGM函数近似值的估计 AGM是 Arithmetic-Geometric Mean的缩写,意为算术几何平均数。其定义为,给定两个正实数a0和b0,我们定义一个迭代过程 ai+1=ai+bi2, bi+1=aibi−−−√ai+1=ai+bi2, bi+1=aibi a_{i+1}= \frac {a_i+b_i} {2}, ...
2017-08-12 02:08:10
2309
原创 批量分解素因数(二)
本文中的程序使用压缩的格式存储M以内(包含M)的所有奇数的分解式,本程序侧重于使用尽可能少的内存空间来保存M以内的所有奇数的分解式。
2016-07-26 10:06:45
781
原创 一个卓有成效的汇编优化范例--使用SSE2指令优化进制转化
本文通过一个64位整数转化为16进制字符串的函数,讲述程序优化的的一些方法。本文包括3个C语言的版本和1个SSE2汇编的版本。性能最强的SSE2版本的性能竟达原始C版函数的性能的21倍。
2015-08-05 22:10:24
2029
原创 Spigot 算法之一 计算调和级数的和
我是首先在[1] 注意到 Spigot-Algorithm的,这个算法发布的相当早,见[2]. [1] 给出几个令人惊异的程序,只用很少的代码就可以计算e,pi,log(2)等常数。其中那个4行代码计算圆周率的程序被网友称作外星人写的程序,但我一直没有勇气去分析和学习它,最近终于决定学习这个 Spigot-Algorithm,先看了文献【3】,明白了其基本思想,遂计划尝试编写各种计...
2015-07-04 10:00:22
4978
原创 最短的计算大数乘法的c程序
这个程序目的是尽量使用最少的代码来计算大数乘法。本程序接收2个从键盘输入的整数,计算他们的乘积,并输出结果,去除回车和不必要的空格,源代码仅仅194个字节。
2015-07-01 21:53:20
3698
转载 浮点数到整数的快速转换
浮点数到整数的快速转换 在计算机图形运算中,常常要将浮点数转换为整数,例如在图像的光栅化阶段,就要执行大量的类型转换,以便将浮点数表示的坐标转化为整数表示的屏幕坐标。 ---------------------------------------------------------------------------------------- // // 强制类
2015-03-28 17:16:23
4422
1
原创 编译器中和64位编程有关的预定义宏
本文对分别测试VC,MinGW,GCC 三种编译器,在32位和64位模式(共6种情况下),和64位编程有关的与预定义宏的值。对跨平台编程具有参考意义。
2014-06-30 19:29:03
28095
原创 公比为无理数的等比数列的近似表示
在工程上,经常能够看到公比为无理数的等比数列。无理数是不可以表示为p/q的形式(这里p和q都是正整数)。但是,在某些情况下,并不严格要求相邻2项的比绝对相等,只要近似相等就可以了,这是给出用有理数来拟合这个数列的例子。
2014-03-26 01:47:21
1829
转载 浮点数的比较
在数学运算当中经常会涉及到判断两个数是否相等的情况 对于整数很好处理 A==B这样的一个语句就可以解决全部的问题 但是对于浮点数是不同的 首先,浮点数在计算机当中的二进制表达方式就决定了大多数浮点数都是无法精确的表达的 现在的计算机大部分都是数字计算机,不是模拟机,数字机的离散化的数据表示方法自然无法精确表达大部分的数据量的。其次计算机浮点数的精度在单精度float
2014-03-05 18:45:46
1149
原创 求smooth数
1.什么是Smooth数如果一个整数的所有素因子都不大于B,我们称这个整数为B-Smooth数。用符号Pn表示表示第n个素数,例P1=2,P2=3,P3=5.我们称素因子不大于Pn的Smooth数叫Pn-Smooth数。关于Smooth数更多的信息,请请参阅 Wiki词条 Smooth number http://en.wikipedia.org/wiki/Smooth_numbe
2013-09-30 10:13:25
2072
转载 算法学习和ACM训练方案
1. POJ 推荐50题1.1 第一类 动态规划(至少6题,2479 和 2593 必做) 2479 和 259310151042(可贪心) 114110501080122112602411(稍难) 12761.2 第二类 搜索(至少4题)1011103311292049205624882492(稍难,也可并查集)
2013-09-16 14:57:58
6186
原创 使用回溯法求所有从n个元素中取m个元素的组合
一个使用回溯法求n个元素中去m个元素的c语言代码,包括2个版本,递归版和迭代版,前者代码简洁,后者性能更好些。
2013-09-13 13:55:56
8961
2
原创 用32位汇编语言写的一个简单的表达式计算器
本文给出一个简单的表达式计算器32位汇编源程序,并给出对应的C语言代码,有助于理解汇编和C语言编程的异同。
2012-06-14 01:29:24
6179
原创 用C语言和汇编语言实现将1个整数分解成几个素数的乘积
本文中的程序功能是将1个整数分解成几个素数的乘积,并提供了C语言和32位X86汇编语言2个不同的版本。本文尽量给出一个较好的实现,希望对c语言学习者和汇编语言学习者带来帮助。
2012-06-13 23:08:18
19174
2
用哈夫曼编码压缩文件
2012-05-09
用牛顿迭代法计算整数的平方根到任意精度
2012-02-17
7种FFT代码和测试程序
2010-01-26
快速阶乘计算器
2006-03-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人