摘要: pig cookbook学习Overview近期需要用pig做一些统计,由于没有系统学习,问题出现一些问题,且不容易调试,执行效率也不高。所以打算看一些官方文档,在此做些笔记。pig性能提升指定类型如果在load文件时不指定类型,pig在计算时会指定为double类型,而在很多时候,数据本应是整形等,指定为double类型会增加广计算量。另外,指定类型也会使错误提早暴露出来。--Query 1A = load 'myfile' as (t, u, v);B = foreach A generate t + u;--Query 2A = load 'myfile' 阅读全文
posted @ 2013-07-16 22:16 xd_xiaoxin 阅读(542) 评论(0) 推荐(0) 编辑
摘要: 1. 引用传递与值传递的选择2. 返回值的传递1. 引用传递与值传递的选择熟悉C++的人都知道,C++中函数参数的默认传递方式是值传递(pass-by-value),这种传递方式的好处是在函数内部使用的是实参的一个副本,在函数内部对其操作不会影响实参的值。但是我们也知道,对象的拷贝是会有时间和空间消耗的,而且如果对象所占空间很大的话,以值来传递参数很可能相当费时而极大程序的限制了程序的性能。C++提供了一种高效的对象传递方式:引用传递。自定义类型使用值传递带来的问题:第一,传递对象的效率低。传递对象会调用对象的构造函数,造成时间和空间的浪费。特别如果对象所占的空间很大时,带来的负面效果尤为明显 阅读全文
posted @ 2013-03-26 09:40 xd_xiaoxin 阅读(2814) 评论(3) 推荐(3) 编辑
摘要: 介绍boost::shared_ptr相关的一些内容:用法、实现机制、使用时的注意事项等。boost::shared_ptr和std::tr1::shared_ptr使用方法相同 阅读全文
posted @ 2013-02-26 01:27 xd_xiaoxin 阅读(8905) 评论(2) 推荐(2) 编辑
摘要: 如果想让你的类定义出来的对象是独一无二的,即对象无法被复制,或者使用赋值操作符赋给另外一个对象,那么最好的方法就是禁用拷贝构造函数和赋值操作符。下面介绍几种禁用的方法。(方法来自Effective C++,如果想禁用类的其他函数,方法类似)1. 定义为private且不实现它2. 继承Uncopyable类3. C++0x中的新方法1. 定义为private且不实现它我们知道,拷贝构造函数和赋值操作符重载函数,即使不定义,编译器也会生成一个默认的函数。但是如果定义了,class还是会支持这两个函数。那么应该怎么去禁用它们呢?在C++中,如果不想让对象调用某个方法,那么可以将这个方法声明为pri 阅读全文
posted @ 2013-01-11 01:04 xd_xiaoxin 阅读(1532) 评论(0) 推荐(0) 编辑
摘要: 在C++中当创建一个空类时,C++就会默认的为这个类创建4个函数:默认的构造函数、析构函数、拷贝构造函数、以及赋值操作符。本文参考Effective C++介绍这几个函数。目录:1. 函数的原型以及创建函数的时机2.赋值操作符存在的问题3. C++0x的新变化1. 函数的原型以及函数创建的时机C++中创建一个空类:class Empty {};默认会生成4个函数,其函数的原型如下:public: Empty() { ... } Empty(const Empty& rhs) { ... } ~Empty() { ... } Empty& operator=(cons... 阅读全文
posted @ 2013-01-09 00:56 xd_xiaoxin 阅读(1550) 评论(3) 推荐(0) 编辑