tlsf算法介绍
tlsf(全称Two-Level Segregated Fit,内存两级分割策略算法),第一级(first level,简称fl)将内存大小按2的幂次方划分一个粗粒度的范围,如一个72字节的空闲内存的fl是6(72介于26和27之间),第二级(second level,简称sl)在第一级的基础上做线性化的细粒度划分,分为多少等份由可配置的SLI参数确定,在32bit的系统中,最优的SLI是4或者5,若为4,则等分为24=16份,每一份分割叫做Segregated list(分割链表),如下图中的[104…111],链表上挂着的是大小范围为104…111的free blocks,数字104…111代表的是内存的大小,而非内存地址,tlsf算法将内存分成不同大小的块,如下图的[104…111]这个分割链表管理了两个内存块,一个大小109字节,一个大小104字节。前面介绍了tlsf算法会对内存按照大小做两级分割,接着讨论怎么根据内存大小查找free block,tlsf算法根据需要的内存大小根据前面的两级分割算法计算出fl和sl,采用good fit策略,分割链表中的free block都必须大于需要的内存大小,如需要一个72字节的内存,假设SLI=2(简单起见,做4等分),则fl=6,sl=0,加入选择sl=0这个分割链表,则由于67小于72,不满足分割列表中所有free block大于需要的内存的条件,所以需要取sl=1,如果sl=1这个分割链表不为空则返回这个链表中的第一个free block给到应用程序。
基于协同推荐算法
基于协同过滤的推荐算法(Collaborative Filtering Recommendation)技术是推荐系统中应用最早和最为成功的技术之一。它一般采用最近邻技术,利用用户的历史喜好信息计算用户之间的距离,然后利用目标用户的最近邻居用户对商品评价的加权评价值来预测目标用户对特定商品的喜好程度,从而根据这一喜好程度来对目标用户进行推荐。
基于协同过滤的推荐算法是基于这样的假设:为一用户找到他真正感兴趣的内容的好方法是首先找到与此用户有相似兴趣的其他用户,然后将他们感兴趣的内容推荐给此用户。其基本思想非常易于理解,在日常生活中,人们往往会利用好朋友的推荐来进行一些选择。基于协同过滤的推荐算法正是把这一思想运用到电子商务推荐系统中来,基于其他用户对某一内容的评价来向目标用户进行推荐。