• 吉隆坡第二国际机场(KLIA2)吃喝购物简介

    KLIA2 是个友好的廉航机场,连接着 KLIA2 的商场 Gateway@KLIA2 卖的东西跟市区一个价,可选择的还不少。可惜没有电影院。
    (更多…)

  • glibc 的 malloc per thread arenas 特性

    本文准确性有待深究,只查阅过部分资料和进行过一些简单讨论,并未在代码层面进行过研究。如有纠错或补充,请在本文留言,感谢!

    从 RHEL5 迁移到 RHEL6 的用户会有这样的发现:多线程程序在 RHEL6 中占用的*虚拟内存*,要比在 RHEL5 上的多。这种情况在 JAVA 程序中尤为突出,尽管 JAVA 应用是单线程的。
    其中的一个原因,是 glibc 2.12 中的新特性 malloc per thread arenas 造成的。

    Java 占用较多虚拟内存

    通常,Java 应用会运行在 JVM 上。JVM 有自己的一套内存调用方式,一般不会使用到 glibc. 但某些对象还是会调用 malloc,从而使用使用到 per thread arenas 这个特性。

    为何有 per thread arenas?

    在过去的 malloc 实现中,每个程序会有一个 main arenas 供 malloc 申请使用。对于多线程的程序,每个线程调用 malloc 的时候,都需要事先检查是否有锁,确认没有锁后,才能拿到内存空间。这影响了程序的性能。

    在现在的实现中,每一个线程都会有自己的 arenas,这就避免了线程之间的竞争,从而提高性能。

    另外,我们可以看到 arenas 是一些大约为 64MB 的无权限匿名页(64位系统中)。
    (更多…)

  • 吉隆坡马六甲5日摆拍游

    这5天基本是帮 Becky 摆拍。

    在 KLIA2 的6小时闲逛

    2015年3月,亚航搞了一次大促。我买了 北京->吉隆坡->澳门 的机票,含税约人民币810元。Becky 买了 澳门<=>吉隆坡 的机票,含税约人民币560元。
    提前了将近9个月买的机票,于是我们在2015年12月各自出发了。
    我比 Becky 早到6个小时,只好在机场闲逛。KLIA2 是亚航的大本营,一片红。机场连接这商场 gateway@KLIA2,吃喝购物基本都能满足,价格与市区相似,可以放心吃放心买。然而并没有电影院,逛6小时很煎熬。
    商场的官网 -> http://gatewayklia2.com.my/

    马六甲

    从 KLIA2 到马六甲

    在 KLIA2 GF 有前往马六甲的巴士,印象中是22MYR一位,座位宽敞好睡觉。通常巴士都是到 Melaka Sentral,距离市区有一定距离。也有少数仁爱医院的巴士,距离景点酒店相对近些。

    在 Melaka Sental 吃了个饭。那杯饮料糖浓度极高。
    马六甲
    (更多…)

  • Linux 中删除正在被进程占用的文件,磁盘空间不被释放。

    在 Linux 系统中,通过 rm 命令删除一个文件,实际上是在相应的目录结构中 unlink 这个文件。如果这个文件仍然被打开着,这个文件仍然可以被这个进程所使用,并将继续占用磁盘空间。等这个程序关闭该文件后,对应文件的空间才会被释放。

    === TEST STEPS ===
    (更多…)

  • Ubuntu CCSv6 debug MSP430G2: “Error initializing emulator: No USB FET was found”

    Environment

    1. MSP-EXP430G2 LaunchPad with MSP430G2452 chip;
    2. Ubuntu 14.04 64bit;
    3. CCSv6 installed as TI’s user guide; (http://www.ti.com/tool/msp430-gcc-opensource)
    4. Drivers (udev rules) installed using `ccsv6/install_scripts/install_drivers.sh` under installation directory;

    Issue

    When debugging the Hello World project (Blink your first LED), it shows below error:

    Error initializing emulator: No USB FET was found
    

    Resolution

    1. First, I noticed that `ID_MM_DEVICE_IGNORE` didn’t prevent the ModemManager from grabbing the ez430 device.
    /etc/udev/rules.d/70-mm-no-ti-emulators.rules

    ATTRS{idVendor}=="0451", ATTRS{idProduct}=="F432", ENV{ID_MM_DEVICE_IGNORE}="1"
    

    Instead of figuring out how to make above rules work, I remove the ModemManager straightly. (ModemManager is needed when using mobile boardband to access Internet.)

    $ sudo apt-get remove modemmanager
    

    2. Then I found that CCSv6 doesn’t support MSP430G2’s debug probe. Refer:
    http://processors.wiki.ti.com/index.php/Linux_Host_Support_CCSv6#Not_Supported_2

    So I followed this post to configure mspdebug:
    https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/376857

    a. Install mspdebug

    $ sudo apt-get install mspdebug
    

    b. Let CCS build the project, and you will find `.out` file under the debug directory of project space.

    $ ls workspace_ti/Blink_LED/Debug/*.out 
    workspace_ti/Blink_LED/Debug/Blink_LED.out
    

    c. Launch `mspdebug` to burn and start:

    ~/workspace_ti/Blink_LED/Debug$ sudo mspdebug -n --fet-force-id MSP430G2452 rf2500 "prog Blink_LED.out"
    

    Voila!

  • Linux 下用 netcat 测量 tcp 连接建立时间

    本文未经验证,仅供参考。

    我们希望测量两机之间 tcp 连接的建立时间,以排查网络连接缓慢的问题。
    测量连接建立可以用 nc (netcat)。

    以下是在 RHEL5 (CentOS 5) 的测试方法,其他发行版的 nc 参数可能会有所不同。

    Server端监听 1567 端口:
    ~~~
    # nc -k -l 1567
    ~~~
    使用 -k 参数使之一直保持监听。

    Client 端使用脚本建立1000次连接,并用 time 命令进行计时:

    /tmp/testcon.sh
    ~~~
    #!/bin/bash

    NUM=1000 # How many connection to establish.
    IPADDR=”192.168.122.136″
    PORT=”1567″

    for((i=0; i<$NUM; i++)) do nc $IPADDR $PORT < /dev/null if [ $? -ne "0" ];then echo "*" fi done ~~~ (更多…)

  • Mysql 5.5 的 UNIX Domain Socket 通信方式

    疑问

    我们看到用 mysql_secure_installation 安装配置的 mysql-server (mariadb-server),默认的 host 有 localhost, 127.0.0.1 和 ::1 .

    那么问题来了,默认情况下,对于 IPv4, localhost 跟 127.0.0.1 应该是等同的。为什么在 mysql 这个数据库的认证记录中,会同时出现 localhost 和 127.0.0.1 两个不同的记录呢?

    MariaDB [mysql]> select host,user,password from user;
    +-----------+------+-------------------------------------------+
    | host | user | password |
    +-----------+------+-------------------------------------------+
    | localhost | root | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |
    | 127.0.0.1 | root | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |
    | ::1 | root | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |
    +-----------+------+-------------------------------------------+


    (更多…)

  • 首都国际机场哪里可以停放自行车?

    1. 首都国际机场哪里可以停放自行车?
    在 T3航站楼的西南边,首都机场朗豪酒店的北边(一经路),有很多自行车/电动车/摩托车的停车棚,其中专门有一个是对外的自行车停车棚,可以停放自行车,不过无人看管。

    2. 骑自行车去首都机场的路线?
    从“酒仙桥北路”可以进入“S12 首都机场辅路“,沿着辅路一直走可以到达“岗山路“,继续沿“首都机场辅路“前行可以T2,或者右转进入“岗山路“经由“一经路”可以到达T3.
    航站楼联络线不允许自行车进入,请留意。
    S12 首都机场辅路是双向单车道,没有专门的非机动车道,请注意交通安全。

  • 豆豆和肥叉烧的台北3日游

    (以下内容人称混乱,敬请家长指引)

    爸爸妈妈说国庆假期要带我们去台湾,好开心啊!
    终于到了10月1日,爸爸妈妈把我们塞进了保鲜袋,然后塞进了黑乎乎的书包,出发!

    坑爹的香港航空

    停靠远机位,出发先来个晚点。餐食就是一个掌心大小的”午餐肉面包”,加100ml蒸馏水,呵呵。
    不过我们都在行李架上只能看不能吃。
    香港航空

    飞机抵达桃园机场,爸爸妈妈悄悄地跟我们说,不要说话,千万不能被移民官发现我们偷渡…… 于是我们乖乖睡在书包里,等待着入境。

    宜家下午茶

    一入境,爸爸妈妈就坐巴士到达台北车站。妈妈兴高采烈地买了个排骨便当,便当其实就是low爆的外卖盒饭,爸爸则飞奔到7-11买关东煮。
    吃完,在旅客中心办完了青壮卡,就坐捷运直奔宜家。(捷运站的洗手间好干净,而且台湾同胞都好礼让~)

    台湾的宜家跟香港的宜家有什么不同?没有。
    台湾

    台北宜家

    (更多…)