- 博客(15)
- 问答 (1)
- 收藏
- 关注
原创 Bazel 创建repository_rule
Bazel的repository_rule一直使用Bazel内建的repository (git_repository, http_archive, etc),但实际上bazel提供了自定义的repository_rule给我们自定义repository的rule,以提高我们定义库的方式。一个例子假如在一个远端git上有一个c++的库A,它是一个预编译过的库。也就是说它包含一个lib目录,里面有.a和.so文件,但是在这个库A的BUILD文件里,它是这么写的:cc_library(
2022-03-24 14:31:51 948
原创 线程安全lock-free对象池
对象池对象池(object pool pattern)是一种设计模式。维基百科的解释:Theobject pool patternuses a set of initializedobjectskept ready to use – a "pool" – rather than allocating and destroying them on demand. 对象池的思想是准备好一堆初始化/实例化好的对象,等到使用的时候直接从“池子”里获取一个,从而避免对象的构造与初始化时间。使用对象池的...
2021-08-23 11:26:57 666
原创 简单的JsonParser(Java)
用以测试时写的小工具,以备忘。代码in java8import java.util.ArrayList;import java.util.HashMap;import java.util.Map;public class JsonParser { static char bracesOpen = '{'; static char bracesClose = '}'; static char bracketOpen = '['; static char .
2021-08-12 09:07:08 1256
原创 一个简单的Json生成工具(c++)
自定义数据结构想转成Json string输出,又不想引入rapidJson,就自己实现一个吧。Caveats (TODO)目前不支持数字类型的value 只提供ToString()方法,具生成的json string没有格式化 接口提供不太友好,使用繁琐代码in c++11#include <algorithm>#include <iostream>#include <list>#include <memory>#includ
2021-08-12 08:53:53 1038
原创 C++实现的Base64编码与解码
最近工作需要将二进制保存到hive里,但是很不幸,hive不支持bit字节流的存储,尤其是不定长的字节流。怎么办呢?我们的解决方案是将二进制转成可见的字符再存储字符串。于是使用Base64进行编码。在Java中使用Base64是十分方便的,因为java8自带base64的工具包。但是我们的字节流dump过程是在c++里实现的,而c++的stl中是不会有这个东西的。怎么办?还好我们有boost,但是boost是一个比较庞大复杂的东西,对于我们这个简单的功能实在是大材小用。我不太想引入这个。于是自己造轮子吧。
2021-08-11 11:04:51 1485
翻译 不安全的代码: 教你“随心所欲”地在内存中操作Java的类和对象(2)
使用Unsafe系列之二——Compressed Oops什么是Oops?什么是Compressed Oops?我们一起来探讨吧
2017-09-02 15:38:00 346
翻译 不安全的代码: 教你“随心所欲”地在内存中操作Java的类和对象(1)
原文地址:https://zeroturnaround.com/rebellabs/dangerous-code-how-to-be-unsafe-with-java-classes-objects-in-memory/ Java的类和对象在内存里到底是什么样子的呀?我们一起来搞搞清楚撒。。。你是否对Java内存管理机制感到好奇?有没有问过下面这些奇怪的问题呀:一个类在内存里占多少空间?自己写
2017-09-01 01:04:46 572
原创 排列数组中数字得出最大数算法
今日见一有意思的算法题目:“编写一个能将给定非负整数列表中的数字排列成最大数字的函数。例如,给定[50,2,1,9],最大数字为95021。”最简单的是爆力破解,数组全排列,最后拼出来的数取最大的。然而没有啥技术含量,于是摒弃。接下来分析,另外一种实现方法,分析:为了要得到最大值,那么要从每个数的最高位比较,取最高的(比如第一个数字是9的)放在拼接数字最前面。最完9的,就看有没有8的,
2017-08-02 23:16:00 2975
翻译 CompressedOops: Java中compressed references介绍
[原文地址] https://www.javacodegeeks.com/2016/05/compressedoops-introduction-compressed-references-java.html在这篇文章中,我们来聊聊Compressed oops(压缩了的普通对象指针)。它是JVM的优化技术之一。为什么要提出compressed oops的概念呢?那是因为32位与64位
2016-10-31 13:53:53 3303
空空如也
使用unsafe获取对象出错
2016-10-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人