企业录,供求信息免费发布平台
 
  首 页 企业名录 产品大全 商业机会 企业建站 我的办公室
手机站
企业库
您当前位置是:商业机会 >> 商务服务 >> 软件开发 >> Java 下一代语言中的内存化
Java 下一代语言中的内存化 Java 下一代语言中的内存化_西安达内科技_Java 下一代语言中的内存化

点此浏览大图
公 司: 西安达内科技
发布时间:2014年05月23日
有 效 期:2014年11月19日
留言询价 加为商友
  联系信息 企业信息
先生 (seo)
联系时,请说是在企业录看到的,谢谢!
电  话: 029-82222601
传  真:
手  机:
地  址: 中国陕西西安市陕西省西安市兴庆南路10号交大出版大厦6层
邮  编:
公司主页: http://xadnitpx1.qy6.com.cn(加入收藏)
公 司:西安达内科技

查看该公司详细资料

详细说明

    在本期文章中,西安达内Java培训(http://www.xatarena.cn)讲师将探讨 Java 下一代语言中的内存化。

内存化这个词是 Donald Michie(一位英国人工智能研究人员)发明的,用于表示重复的值的函数级缓存。如今,内存化在函数式编程语言中很常见,它要么被用作一个内置特性,要么被用作一个相对容易实现的特性。

内存化在以下场景中很有帮助。假设您必须反复调用一个注重性能的函数。一个常见解决方案是构建内部缓存。每次计算某个参数集的值时,您都会将该值放入缓存中,作为参数值的线索。在未来,如果该函数使用以前的参数调用,那么它将会从缓存返回值,而不是重新计算它。函数缓存是一种经典的计算机科学权衡:它使用更多内存(我们常常拥有丰富的内存)来不断实现更高的性能。

函数必须是纯粹的,缓存技术才能发挥其作用。纯函数 是没有副作用的函数:它没有引用任何其他易变的类字段,没有设置除返回值以外的任何值,而且仅依赖于参数作为输入。java.lang.Math 类中的所有方法都是纯函数的良好示例。显然,只有在函数可靠地为一组给定的参数返回相同值时,您才能成功地重用缓存的结果。

Groovy 中的内存化

内存化在 Groovy 中很简单,Groovy 在 Closure 类上包含一系列 memoize() 函数。例如,假设您有一个昂贵的哈希算法,以至于您需要缓存结果来提高效率。为此,您可以使用闭包块语法来定义方法,在返回时调用 memoize() 函数,如清单 1 所示。我并不是暗示清单 1 中使用的 ROT13 算法(即凯撒密码 的一个版本)的性能面临挑战,只是假设缓存在这个示例中很重要。

清单 1. Groovy 中的内存化

class NameHash {
def static hash = {name ->
name.collect{rot13(it)}.join()
}.memoize()

public static char rot13(s) {
char c = s
switch (c) {
case 'A'..'M':
case 'a'..'m': return c + 13

case 'N'..'Z':
case 'n'..'z': return c - 13
default: return c
}
}
}

class NameHashTest extends GroovyTestCase {
void testHash() {
assertEquals("ubzre", NameHash.hash.call("homer")) }
}


免责声明:以上所展示的信息由会员自行提供,内容的真实性、准确性和合法性由发布会员负责,www.qy6.com.cn对此不承担任何责任。如有侵犯您的权益,请来信通知删除。
该公司其他商业信息
 1 直接到第
20 条信息,当前显示第 1 - 20 条,共 1

机械 仪器 五金 电子 电工 照明 汽摩 物流 包装 印刷 安防 环保 化工 精细化工 橡胶塑料 纺织 冶金 农业 健康保养 建材 能源 服装 工艺品 家居用品 数码 家用电器 通讯产品 办公 运动、休闲 食品 玩具 商务 广告 展会
1 2 3 4 5 6 7 8 9 10 .. 联系人:陈 电话:029-82222601

关于我们 | 网站指南 | 广告服务 | 诚招代理 | 诚聘英才 | 付款方式 | (企业录)联系方式 | 友情链接 | 网站地图