我想扇出/链接/复制输入AWS Kinesis流到N个新的Kinesis流,以便写入输入Kinesis的每个记录将出现在N个流中的每个流中.
是否有AWS服务或开源解决方案?
如果有现成的解决方案,我宁愿不编写代码来做到这一点.AWS Kinesis firehose是无法解决的,因为它无法输出到kinesis.也许AWS Lambda解决方案如果运行起来不会太昂贵?
我有一个非常大的Android项目,包含多个大型第三方jar(作为Android库).
我相信我已经达到了Dex的最大方法限制数量(通过eclipse进行编译):
[2012-11-18 02:28:45 - 在文件中查找] Dx处理classes.dex ...
[2012-11-18 02:28:48 - Dex Loader]无法执行dex:无法将新索引66774合并到一个非巨型指令!
[2012-11-18 02:28:48 - 在文件中查找]转换为Dalvik格式失败:无法执行dex:无法将新索引66774合并到非jumbo指令中!
因此,利用SDK工具21(平台工具16)编辑了我的主项目project.properties进行设置dex.force.jumbo=true.
允许我生成APK的标志.但我无法正确安装(在物理和模拟器上).似乎有一个dex优化器失败:
11-18 20:11:05.338:I/PackageManager(103):运行dexopt on:com.mypackage.myapp
11-18 20:11:08.577:E/dalvikvm(868):乱序method_idx:0x2ae0然后0x1
11-18 20:11:08.577:E/dalvikvm(868):项目1544的问题@偏移量0xf7ae24
11-18 20:11:08.577:E/dalvikvm(868):2006年部分类型的交换失败
11-18 20 :11:08.577:E/dalvikvm(868):错误:字节交换+验证失败
11-18 20:11:08.597:E/dalvikvm(868):优化失败
11-18 20:11:08.597:W/installd( 39):DexInv:--- END'
/data/app/com.mypackage.myapp-1.apk'--- status = 0xff00,进程失败11-18 20:11:08.597:E/installd(39): dexopt在'/data/dalvik-cache/data@app@com.mypackage.myapp-1.apk@classes.dex'res = 65280上失败
11-18 20:11:08.697:W/PackageManager(103):软件包无法安装在/data/app/com.mypackage.myapp-1.apk
11-18 20:11:09.018:D/dalvikvm( 103):GC_EXPLICIT释放1698K,13%免费17034K/19463K,暂停7ms + 135ms
11-18 20:11:09.068:D/AndroidRuntime(780):关闭VM
我是否试图将该dex.force.jumbo标志用于其不适合的目的,或者这个错误是不可预测的?
如果是这样,是否有更好的策略来生成包含大量类/方法的项目?
我的用例涉及索引Lucene文档,然后在以后的多个场合添加指向此现有文档的术语,即不删除和重新添加每个新术语的整个文档(因为性能,而不是保留原始术语).
我知道文档无法真正更新.我的问题是为什么?
或者更准确地说,为什么不支持所有形式的更新(术语,存储字段)?
为什么不可能添加另一个术语来指向现有文档 - 从技术上讲:并非所有需要的是将现有文档ID放在术语的发布列表中.为什么这么难?是否存在一些不可变的统计数据?
是否有任何变通方法可以支持我在现有文档中添加术语(索引字段)的用法?
这里的问题讨论了文件名长度限制,我对整体允许的路径长度感兴趣(如果重要的话).
这里有这个文件系统限制表,但我不确定哪个适用于哪个版本的Android.
我编写了一个Python实用程序来扫描日志文件中的已知错误模式.
我试图通过为正则表达式引擎提供额外的模式信息来加速搜索.例如,不仅我正在寻找行gold,我要求这样的行必须以下划线开头,所以:^_.*gold而不是gold.
由于99%的线路没有以下划线开头,我期待获得巨大的性能回报,因为正则表达式引擎可以在仅仅一个字符后中止读取线路.从另一个方面我很惊讶.
以下程序说明了问题:
import re
from time import time
def main():
line = r'I do not start with an underscore 123456789012345678901234567890'
p1 = re.compile(r"^_") # requires underscore as a first char
p2 = re.compile(r"abcdefghijklmnopqrstuvwxyz")
patterns = (p1, p2)
for p in patterns:
start = time()
for i in xrange(1000*1000):
match = re.search(p, line)
end = time()
print 'Elapsed: ' + str(end-start)
main()
Run Code Online (Sandbox Code Playgroud)
我试过检查sre_compile.py寻找解释,但它的代码对我来说太毛茸茸了.
观察到的性能是否可以通过包含行开头字符将正则表达式引擎操作从简单的子字符串op转换为更复杂的回溯状态机操作来解释?从而超过了在第一个角色之后中止搜索等任何好处?
考虑到这一点,我尝试将线的长度乘以x8,期望线搜索的开始闪耀,但是间隙只会变宽(22秒对6秒).
我很困惑:我在这里错过了什么吗?
我需要编写相当直接的DB代码,而我正在考虑MyBatis而不是普通的JDBC(我相信完整的ORM是一种过度杀伤力).
考虑到在MyBatis和普通JDBC中你都发现自己:
我所知道的MyBatis优于JDBC的好处是:
还有哪些其他MyBatis-Over-JDBC好处需要考虑?
我需要 Docker pull 尽可能快。我正在使用 EC2 机器在大约 3 分 10 秒(70MB/秒)内从 ECR(亚马逊容器注册表)提取约 13.2GB 的数据。
我可以调整 Docker 客户端使用更多系统资源(线程、连接)以便拉取更快地完成吗?
例如:我可以调整 Docker 以并行下载更多层吗?和/或多部分下载?
笔记:
我需要在内存中查找并查找一百万个均匀分布的整数.我的工作量非常密集.
我当前的实现使用HashSet(Java).我看到了很好的查找性能,但内存使用情况并不理想(数十MB).
您能想到更高效(内存)的数据结构吗?
编辑:解决方案需要支持少量的数据结构添加.
背景:
上面说的整数问题是对以下问题的简化:
我有一百万个字符串(我的"字典"),我想知道字典是否包含给定的字符串.
字典太大而不适合内存,所以我愿意牺牲一点精度来减少内存占用.我将通过切换到包含每个String的Hashcode值(整数)的Dictionary而不是实际的chars来实现.我假设每个字符串发生碰撞的可能性只是1M/2^32.
java ×3
android ×2
performance ×2
python ×2
adt ×1
android-file ×1
dex ×1
dexopt ×1
dns ×1
docker ×1
docker-pull ×1
filesystems ×1
hashcode ×1
ibatis ×1
immutability ×1
jdbc ×1
lucene ×1
mybatis ×1
networking ×1
regex ×1
search ×1
sql ×1
srv ×1