logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

从fread和mmap谈C++读文件的性能

(关于Linux读文件的更深入理解,猛戳这里吧)        在进行大规模数据处理时,读文件很有可能成为速度瓶颈。不管你的CPU有4个核还是8个核,主频有2G还是3G,硬盘IO速度总是有个上限的。在本人最近的一次经历中,对一个11G的文本进行数据处理,一共耗时34.8秒,其中竟然有30.2秒用在访问IO上,占了所有时间的87%左右。        虽然说硬盘IO是有上限的,那么C++

#c++#linux
数据库索引原理(1)-----TokuDB中的COLA-Tree

目前无论是商业的SQL Server,还是开源的MySQL,都基本上还在用比较老的B+Tree(SQLServer用的是标准的B-Tree)的索引结构。从原理来说,B系列树在查询过程中应该是不会慢的,而主要问题就是出现在插入。B-Tree在插入的时候,如果是最后一个node,那么速度非常快,因为是顺序写。但如果数据插入比较无序的时候,比如先插入5然后10000然后3然后800这样跨度很大的数

Linux下多线程编程简单示例

最近尝试下Linux下使用多线程开发程序,在百度文库中找到了一段比较好的范例,介绍的很全面,拿出来和大家分享。        Linux系统下的多线程遵循POSIX线程接口,称为 pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux下pthread的实现是通过系统调用clone()来实现的。clone(

#linux#数据结构
Linux下编译动态链接库

由于动态链接库函数的共享特性,它们不会被拷贝到可执行文件中。在编译的时候,编译器只会做一些函数名之类的检查。在程序运行的时候,被调用的动态链接库函数被安置在内存的某个地方,所有调用它的程序将指向这个代码段。因此,这些代码必须实用相对地址,而不是绝对地址。在编译的时候,我们需要告诉

#linux
matlab的double和single类型

看到博客(这里)中说,在matlab中, 当数据比较大时,运算起来就困难了,有时候还会out of memory。原因是默认情况下matlab用double存储数据。而double数据类型占8个字节,single类型占4个字节。把数据类型从double类型转换成single类型可以节省一半的空间。(如果怀疑可以用whos指令查看)。本来很有道理的,但是看到有人说(比如这里):Theforma

机器学习的数学基础(1)--Dirichlet分布

这一系列(机器学习的数学基础)主要包括目前学习过程中回过头复习的基础数学知识的总结。基础知识:conjugate priors共轭先验    共轭先验是指这样一种概率密度:它使得后验概率的密度函数与先验概率的密度函数具有相同的函数形式。它极大地简化了贝叶斯分析。    如何解释这句话。由于    P(u|D) = p(D|u)p(u)/p(D)   (1.0式)    其中D是

机器学习是什么

不久以前读的一篇好文,主要是讲机器学习到底是属于什么学科或者研究领域,同时也介绍到了ML与AI之间的关系。作者是南京大学的周志华老师。废话少说,直接上文章。-------------------------------------------------------      机器学习现在是一大热门,研究的人特多,越来越多的新人涌进来。      不少人其实并没

迁移学习的相关概念

之前谈到了迁移学习和自我学习(可以看这里),今天会系统整理一下与迁移学习相互关联的几个概念。        迁移学习的目标是将从一个环境中学到的知识用来帮助新环境中的学习任务。用一句不正式的语言来定义,则是说,当教会了d电脑学习区分大象和犀牛的能力后,电脑利用这一本领更快或更准确地来学习如何区分飞机和鸟。因为人具有知识迁移的能力(所谓温故而知新),当我们学会了一项本领后,再去学习另外一项相关的

#迁移学习
到底了