文档章节

编程学习笔记之D语言(二)

通吃岛-低手哥
 通吃岛-低手哥
发布于 2015/08/27 00:23
字数 248
阅读 142
收藏 4

  D语言作为系统级语言,支持内嵌汇编语言,那么就来试一试,不知道写什么好,就模仿erlang的time:tc好了。

 time:tc(Module, Function, [Arguments]),  erlang的tc函数可以测试FUnction的执行时间。

 现在用 D语言内嵌汇编模仿一下这个函数,精确到CPU时钟周期。 

 

void tc(lazy void fun) 
{
  int time1, time2;
  asm
  {
    rdtsc     ;           //通过RDTSC指令获取,暂时忽略高位EDX
    mov time1, EAX;
  }

  fun();
  
  asm
  {
    rdtsc      ;  
    mov time2,   EAX;
  } 
  writeln("total ticks: ", time2 - time1); 
}

 

 D语言内嵌汇编的形式是:

 asm { 汇编语句}, 以分号结尾,并且寄存器名要大写。

那么现在来测试一下:

int test_sum(int start, int end)
{
  int sum = 0;
  foreach (int val; start..end) {
    sum += val;  
  }
  return sum;
}

void main() 
{
  tc(writeln("hello,world"));
  tc(test_sum(1,100));
}

 

  运行结果如下图: 1 到100 大概花费2000个时钟周期, 输出hello,world大概花了几十万个时钟周期。

 

it's time to sleep, goodnight.

© 著作权归作者所有

通吃岛-低手哥

通吃岛-低手哥

粉丝 17
博文 40
码字总数 9778
作品 0
广州
程序员
私信 提问
加载中

评论(1)

liango
liango
22
10月编程语言排行榜:不成大器的D语言

【51CTO独家特稿】今天Tiobe发布了2011年10月编程语言排行榜,本期排行榜我们看到Lua这门语言蹿升很快,而传统的竞争对手C#和PHP正在交替自己的位置。Assembly(汇编语言)正在大踏步的向后退...

zjf_sdnu
2011/10/17
424
0
Tiobe 2011年10月编程语言排行榜

今天Tiobe发布了2011年10月编程语言排行榜,本期排行榜我们看到Lua这门语言蹿升很快,而传统的竞争对手C#和PHP正在交替自己的位置。Assembly(汇编语言)正在大踏步的向后退,从2011年3月份的...

hmly
2011/10/19
6.1K
28
Posix多线程编程学习笔记

Posix多线程编程学习笔记(一)—线程基础(1) http://blog.chinaunix.net/u/22935/showart_310711.html Posix多线程编程学习笔记(一)—线程基础(2) http://blog.chinaunix.net/u/2293...

晨曦之光
2012/04/13
240
0
2011年9月编程语言排行榜:D语言重返Top 20

Tiobe公布了最新的2011年9月编程语言排行榜,其中D语言取代在8月第一次进入Top 20的F#语言,重返前20。和F#第一次进入Top 20不同,D语言并非首次进入,它从2007年至2009年中期,一直在Top 2...

vVqsGHcN
2011/09/13
2.2K
5
开源的系统级编程利器:D语言

在Digital Mars公司的D语言首 页上,放置着这样一段话“计算机编程语言门类众多,其来源大致可分为两种途径。一类新语言来自于极具创新精神的学术界;而一类则源于关注研发结合和互联网 的新...

小卒过河
2011/10/11
5K
21

没有更多内容

加载失败,请刷新页面

加载更多

02.日志系统:一条SQL更新语句是如何执行的?

我们还是从一个表的一条更新语句说起,我们创建下面一张表: create table T(ID int primary key, c int); 如果要将ID=2这一行c的值加1,SQL可以这么写: update T set c=c+1 where ID=2; 前...

scgaopan
今天
7
0
【五分钟系列】掌握vscode调试技巧

调试前端js 准备一个前端项目 index.html <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1......

aoping
今天
6
0
PhotoShop 高级应用:USM锐化/S锐化/防抖

、 高反差锐化+混合模式:叠加模式 【将更多的边缘细节添加到图像中】

东方墨天
今天
7
0
Python数据可视化之matplotlib

常用模块导入 import numpy as npimport matplotlibimport matplotlib.mlab as mlabimport matplotlib.pyplot as pltimport matplotlib.font_manager as fmfrom mpl_toolkits.mplot3d i......

松鼠大帝
昨天
5
0
我用Bash编写了一个扫雷游戏

我在编程教学方面不是专家,但当我想更好掌握某一样东西时,会试着找出让自己乐在其中的方法。比方说,当我想在 shell 编程方面更进一步时,我决定用 Bash 编写一个扫雷游戏来加以练习。 我在...

老孟的Linux私房菜
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部