在新的 Mbp 上新装的 XeLaTeX,编译一个之前写好的文档,报 Font 'Songti SC' does not contain script 'CJK'
。打开 Mac 的 Font Book 应用,试了几种中文字体都不行。Google 了一下,这里列出了所有支持 CJK 的字体。下载了其中列举的文泉驿和网上找到的微软字体都有一些问题,特别是微软的字体,放到 Mac 中都是方块。
Wiki 中提到了微软的 Office 中是有简体中心字体的,搜索一下本机:locate ttf|grep -i song|grep -i micro
,得到以下结果:
/Applications/Microsoft Excel.app/Contents/Resources/DFonts/Fangsong.ttf /Applications/Microsoft OneNote.app/Contents/Resources/DFonts/Fangsong.ttf /Applications/Microsoft PowerPoint.app/Contents/Resources/DFonts/Fangsong.ttf /Applications/Microsoft Word.app/Contents/Resources/DFonts/Fangsong.ttf
open /Applications/Microsoft\ Word.app/Contents/Resources/DFonts/Fangsong.ttf
打开字体文件,点击安装,忽略报错,直接安装。拿到 PostScript 名称 FangSong
,放到代码中,编译成功。
XHProf 是 Facebook 开源出来的一个php轻量级的性能分析工具,跟Xdebug 类似,但性能开销更低,还可以用在生产环境中,也可以由程序开关来控制是否进行 profile。
最近发现 Laravel 在处理某类队列任务时时间超长,经排查发现 src/Illuminate/Queue/Jobs/Job.php 文件中的 rolveQueueableEntity 使用了 Illuminate Str 的 startsWith,此方法中使用了 mb_strpos 方法。mb_strpos 的性能非常差1,在处理大 string (100M以上) 时会产生严重性能问题。可以看到这里处理的数据有一种是序列化后的 Job 实例,是有可能出现大的 string.
Elasticquent 是与 Larave Model Eloquent 结合的 Elasticsearch 客户端,它可以轻松的将 Eloquent 中定义好的数据和关系映射并同步到 Elasticsearch 中。
在做后台权限系统的时候需要将所有在框架中注册的 Router Names 同步到数据库中以便后台配置权限,可以使用 Laravel 中全局变量 $app 中获取到相关信息:
global $app; //Illuminate\Routing\Router Object $routers = $app['router']; //Illuminate\Routing\RouteCollection Object $router_collection = $routers->getRoutes();
取出 Route Collection 后就可以遍历取出 Illuminate Routing Route 对象,读出需要的信息。比如:
$router->domain(); $router->getName();