878 词
设计模式设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 到目前为止,我在用lua作图时只用到了单例模式,其他设计在后续开发中在逐步添加。 12345678910111213141516171819202122232425262728293031323334353637383940 优点 一、实例控制 单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。 二、灵活性 因为类控制了实例化过程,所以类可以灵活更改实例化过程。 缺点 一、开销 虽然数量很少,但如果每次对象请求引用时都要检查是否存在类的实例,将仍然需要一些开销。可以通过使用静态初始化解决此问题。 二、可能的开发混淆 使用单例对象(尤其在类库中定义的对象)时,开发人员必须记住自己不能使用new关键...
1k 词
#Lua 学习 ##知识点1.requeire加载路径 ###加载机制对于自定义的模块,模块文件不是放在哪个文件目录都行,函数 require 有它自己的文件路径加载策略,它会尝试从 Lua 文件或 C 程序库中加载模块。require 用于搜索 Lua 文件的路径是存放在全局变量 package.path 中,当 Lua 启动后,会以环境变量 LUA_PATH 的值来初始这个环境变量。如果没有找到该环境变量,则使用一个编译时定义的默认路径来初始化。当然,如果没有 LUA_PATH 这个环境变量,也可以自定义设置,在当前用户根目录下打开 .profile 文件(没有则创建,打开 .bashrc 文件也可以),例如把 “~/lua/“ 路径加入 LUA_PATH 环境变量里: #LUA_PATHexport LUA_PATH=”~/lua/?.lua;;”文件路径以 “;” 号分隔,最后的 2 个 “;;” 表示新加的路径后面加上原来的默认路径。接着,更新环境变量参数,使之立即生效。source ~/.profile这时假设 package.path 的值是:/Users/den...
580 词
<div class="media-content"> <div class="content"> <div></div> <a href="/EAE 6900 Realtime Rendering 11/" class="has-link-black-ter is-size-6">EAE 6900 Realtime Rendering - Specular Light, Point Light</a> <p class="is-size-7 is-uppercase"> <a cl...
8.1k 词
demo下载地址 一. 简介 一个数学表达式计算器,能实现和 UIWebView 的 stringByEvaluatingJavaScriptFromString: 一样的计算效果,但效率要高很多,可以在子线程中执行; 基本全面覆盖 NSExpression 的 expressionForFunction:arguments 中的所有function,使用要比 NSExpression 简单很多,只需将注意力放大expression表达式的编辑上,将任意复杂度的表达式,通过eval:方法传入便可轻松得到计算结果; 支持复杂加减乘除四则运算,与或非逻辑运算,和大于小于等比较运算; 支持三目运算; 表达式中能自动识别处理的函数,基本全部覆盖NSExpression,有的未实现的,因为可以自己有数学表达式表达,比如 a+b,这个表达式计算最基本功能,无需通过函数调用来实现; 以上所述的计算类型在符合数学表达式逻辑的前提下,可以组合在一个表达式中,函数支持嵌套调用; 支持字符串相加(字符串拼接); 开发者可以扩展自己的函数,通过构建 HMExpressionFunctio...
3.7k 词
Lua基本类型及Basic Functions </div> <div class="content"> 概述 Lua的基本类型 基本类型 e.g. function testType() print (string.format("the type of _G = %s ", type(_G))) print (string.format("the type of _VERSION = %s ", type(_VERSION))) print (string.format("the type of X = %s ", X)) print (string.format("the type of nil = %s ", type(nil))) print (string.format("the type of 1 + 1 = %s ", type(1 + 1))) print (string.format("the type...
2.6k 词
Web开发常见的几种缓存 常用缓存(memcached和redis) Nginx的缓存(标准模块缓存: proxy_cache和fastcgi_cache / 第三方模块做缓存: ngx_lua) CDN缓存 浏览器缓存(Cache-Control和LocalStorage) proxy_cache和fastcgi_cacheproxy_cache和fastcgi_cache都为Nginx的内置缓存,proxy_cache主要用于反向代理时,对后端内容源服务器进行缓存,fastcgi_cache主要用于对FastCGI的动态程序进行缓存。两者相关配置类似,以下为fastcgi_cache举例 原理 针对fastcgi(如:php-fpm)返回的内容缓存为静态文件(文件名是用Md5算法对Key进行哈希后所得,而Key可使用fastcgi_cache的相关指令来进行控制),在用户浏览时,无需重复请求后端fastcgi,而直接返回缓存的内容,减少了后端的语言解析以及数据库连接的消耗。 数据流程图 指令注释nginx的http作用域:fastcgi_cache_path /hom...
3.4k 词
Abstract Scatterplots are frequently scaled to fit display areas in multi-view and multi-device data analysis environments. A common method used for scaling is to enlarge or shrink the entire scatterplot together with the inside points synchronously and proportionally. This process is called geometric scaling. However, geometric scaling of scatterplots may cause a perceptual bias, that is, the perceived and physical values of visual features may be dissociated with respect to geometric ...
1.8k 词
Lua 中 40 字节以下的字符串会被内部化到一张表中(Lua 5.3),这张表挂在 global state 结构下。对于短字符串,相同的串在同一虚拟机上只会存在一份,这被称为字符串的内部化。 其实字符串在 Lua VM 中是以两种内部形式保存的:短字符串及长字符串。其界限默认设置为40(字节) 对于比较长的字符串(32字节以上),为了加快哈希过程,计算字符串哈希值是跳跃进行的(并没有 hash 全部的位)。 Lua Wiki 上列出了各个版本的 Lua 对于 string 没有计算 hash 的长度: Hash algorithm analysis -- number of bytes not used in hash function ============================================================== String length < 15, 15-20 , 20-32 , 32-64 -----------------------------------------...
142 词
JIT = Just In TimeIOS中禁止使用(不让自主申请内存) 解释执行: 效率低 代码暴露 静态编译 不够灵活,无法热更新 平台兼容性差 JIT: 效率:高于解释执行,低于静态编译。 安全性:一般都先转换成字节码 热更新:无论源码还是字节码本质都是自愿文件。 兼容性:虚拟机会处理平台差异,对用户透明。
995 词
<ul id="markdown-toc"> 一、lua 基本语法 二、lua 数据类型及操作 lua 学习总结文档 一、lua 基本语法 二、lua 数据类型及操作 lua 是动态类型语言,变量无需声明定义,可以直接进行赋值操作。主要包含如下表格中的数据类型: nil (空) nil 表示一种无效的值,它只有一个值 nil。 print(type(nil)) -- nil 给全局变量或者表中的变量赋值为 nil,相当于删除该变量。 lua_global_var = nil -- 相当于删除lua_global_var全局变量 lua_table = { key1 = 'lua', key2 = 'lang' } lua_table.key1 = nil -- 删除了lua_table中的key1元素 boolean(布尔)。lua 中只有 false 和 nil 的布尔值为假。 number(数字)。Lua 默认只有一种 number 类型,以下几...