存档

2012年2月 的存档

关于Python变量和List的append操作

2012年2月28日 sigma 5 条评论 11,663 views

今天,写Python代码,碰到一个很诡异的问题,花了好长时间才明白(也怪我基础不好,没系统学习python,都是用的时候直接抓脑皮用),通过这个问题,我基本搞清楚了Python中的变量以及List的一些操作。在这里给自己Mark下,也希望对读这篇文章的人有点用。
首先,看下面这段代码:

#!/usr/bin/python
# -*- coding: utf-8 -*- 

import os,sys

trace_file = open("./all_memtrace_file_test","r")

all_addr=[]
all_addr2=[]
addr_info2={}
addr_info={}

for line in trace_file.readlines():
    addr_info = {'addr':int(line.split(",")[2].strip(" "),16),'access':line.split(",")[3].strip("n")}
#    addr_info2={}
    addr_info2['addr']=int(line.split(",")[2].strip(" "),16)
    addr_info2['access']=line.split(",")[3].strip("n")
    if addr_info == addr_info2:
        print "addr_info == addr_info2"
    print "addr_info  = ",
    print addr_info
    print "addr_info2 = ",
    print addr_info2
    all_addr.append(addr_info)
    all_addr2.append(addr_info2)
    print "all_addr   = ",
    print all_addr
    print "all_addr2  = ",
    print all_addr2

阅读全文…

mark

2012年2月26日 sigma 没有评论 4,558 views
分类: 未分类 标签:

由《商海通牒(Margin Call)》所想到的

2012年2月17日 sigma 5 条评论 5,779 views

上周末,看了关于华尔街,关于金融的电影《Margin Call》,中译《商海通牒》,又译《孖展风云(港)》 /《 黑心交易员的告白(台)》 / 《利益召唤》。这部电影个人感觉还不错,大致讲了在08年金融危机来临之前的华尔街,一个金融巨鳄是如何陷入危机,并转嫁危机的,从而对整个金融业造成更大动荡,看完以后对金融游戏有些了解(其实我虽然我从没想过涉足金融领域,但对金融还是有兴趣的,毕竟其已经深刻的影响我们的生活)。在这里,我不想介绍其具体介绍或剧情,有需要的可以看豆瓣电影的相关词条。其实这部电影对我印象最深的是一段对白,在这里分享下:

你知道吗,我以前造过座桥,我以前是个工程师。
这桥连接俄亥俄的多士巴和西维吉尼亚的玛瑟夫,在俄亥俄州河面上横跨912英尺[约277米]。
每天有一万两千一百人通过这桥,把从惠灵到新马顿赛的单程距离缩短了三十五英里;
一天总共是八十四万七千英里;
一个月两千五百四十一万英里;
一年 三亿四百九十二万英里就这么节省下来了。
那桥是我在1986年完成的,
就是二十二年前从桥建成以后算起,总共节省了六十七亿八百二十四万英里的车程。
时速呢,就算五十英里每小时吧,那就是一亿三千四百十六万四千八百小时,
也就是五十五万九千零二十天。
这么一座小桥,让这两个社区的居民总共节省了一千五百三十一年,不用浪费在车厢里。
一千五百三十一年啊!老天啊!

阅读全文…

事务和事务内存

2012年2月12日 sigma 没有评论 7,903 views

今天(2月9日),看到solidot报道,英特尔下一代Haswell处理器硬件支持事务内存,感觉有点小意外。

其实很早以前(2009年),我就对事务内存关注过一段时间,当时,号称要支持的事务内存的处理器只有(据我所知)只有sun公司的Rock处理器,可是这个Rock,一再跳票,跳到Sun陨落也没发布,到现在,oracle也没发布支持事务内存的处理器。事务内存(尤其是硬件实现的)的前景貌似不太明朗。

2011年9月,IBM发布了BlueGene/Q处理器,这是第一款支持事务内存的处理器。但是,这并不意味着事务内存重见天日了。
2012年2月7日,最大的处理器厂商发表文章,声称支持硬件事务内存,其通过Transactional Synchronization Extensions(TSX)的组件来实现的,事务内存的前景终于开始明朗起来。

那么,什么是事务,什么又是事务内存呢。

根据维基百科整理,事务的定义为:

数据库事务(简称: 事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。在数据库管理系统中,事务必须满足ACID性质,即原子性,一致性,隔离性和持久性。原子性指的是事务中的动作要么全部执行,要么一个都不执行;一致性指的是任何时刻,数据库必须处于一致性状态,即必须满足某些预先设定的条件;隔离性是指一个事务不能看见其他未提交事务所涉及到的内部对象的状态,而持久性则是指一个已提交的事务对数据库系统的改变必须是永久的。 阅读全文…

程序/进程的前世今生

2012年2月8日 sigma 5 条评论 6,173 views

在这篇文章中,将介绍下程序从源码,到目标文件,到二进制码,再到装载,运行以及退出的整个过程,简称程序/进程的前世今生。

首先,区分一下程序和进程的概念。程序是一个静态的概念,而进程是一个动态的概念。程序一般是指从源码到二进制码这些过程的实体(勉强简称为前世),而进程则是从装载,到执行,到推出的实体(勉强简称为今生)。维基百科对两个概念的定义为:

程序的定义:

计算机程序或者软件程序(通常简称程序)是指一组指示计算机或其他具有讯息处理能力装置每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。

进程的定义:

行程(英语:Process,中国大陆译作进程,台湾译作行程)是计算机中已执行程序的实体。行程本身不会执行,是线程的容器。程式本身只是指令的集合,行程才是程式(那些指令)的真正执行。

对于上面进程的定义,个人觉得有点问题(不仅仅是大陆台湾叫法不同的问题),我认为应该是”进程是计算机已执行程序的实体。对于多线程程序,程序可能存在多个同时执行的指令流和控制流,称为线程。程序本身知识指令的集合,进程才是那些指令的真正执行”。

下面,就开始介绍程序/进程的前世今生,由于内容较多,在这里只是介绍前世今生的各个阶段,各个阶段的详细介绍,后面有空的话,并且觉得有必要的话,会单独写一文。不废话,转入正题,程序/进程大致需要经过以下阶段完成其前世今生(以C语言以及Linux进程为例): 阅读全文…

无觅相关文章插件,快速提升流量