小编Bjö*_*ist的帖子

android dalvik vm是否使用转义分析优化?

关于dalvik逃逸分析的任何想法?或者何时以及是否计划添加?

我认为转义分析是GC语言中一个非常重要的特性,可以避免每次调用方法时产生对象,并且当前我在类中预先分配一个对象并在方法的开头重置它,所以我避免分配(我正在写用于Android的3D游戏...在java)中,但我发现这种方法很丑陋并且使用预分配的对象保持内存不足.

android dalvik escape-analysis

7
推荐指数
1
解决办法
602
查看次数

如何在堆栈机器中找到gc root?

我正在为一个相当标准的堆栈机器编写一个编译器.现在我想添加一个垃圾收集器.我可以看到,我可以生成某种"堆栈映射",以了解哪些变量是每个激活记录中的gc根.但是,我不知道如何处理执行期间在堆栈中推送的中间值.我正在编译的语言是Pascal式的,所以我不需要,我不想使用标签来识别来自其​​他数据类型的指针.

我会很感激有关如何的任何提示/指示

  1. 在任何时间点在堆栈中查找gc根(即,如何识别已在堆栈中推送的哪些中间值是gc根).
  2. 编码此信息的常用形式(即,如何生成和编码"堆栈映射")

非常感谢你!萨科

compiler-construction garbage-collection code-generation stack-machine gc-roots

7
推荐指数
1
解决办法
250
查看次数

Haskell Aeson:如何将Value转换为自定义类型?

找不到一个好例子.感谢任何帮助.JSON如下:

[{
  "EXIF:Make": "Canon",
  "EXIF:Model": "Canon PowerShot S95",
  "EXIF:Orientation": "Horizontal (normal)",
  "EXIF:XResolution": 180,
  "EXIF:YResolution": 180,
  "EXIF:ResolutionUnit": "inches"
}]
Run Code Online (Sandbox Code Playgroud)

我使用的代码如下:

import Data.Aeson
import Data.Attoparsec
import Data.ByteString
x <- fmap (parse json) (Data.ByteString.readFile "json.txt")
Run Code Online (Sandbox Code Playgroud)

如何定义和使用FromJSON要转换x为的类型:

data Exif = Exif [[(String, String)]]
Run Code Online (Sandbox Code Playgroud)

或类似的数据结构?注意[[]]- 我希望JSON有多个顶级条目.

json haskell aeson

6
推荐指数
1
解决办法
1877
查看次数

使用Linux上的Team Explorer Everywhere设置工作区

我无法使用Team Explorer Everywhere命令行客户端(TEE-CLC-10.0.0)创建工作区并从Team Foundation Server下载文件.我已经创建了工作区:

$ ../tfs/TEE-CLC-10.0.0/tf -login:secretUsername,secretPassword -server:http://secretHost:8080 workspace -new KOLOBI
Workspace 'KOLOBI2' created.
Run Code Online (Sandbox Code Playgroud)

然后我想从服务器下载文件到我的工作区:

$ ../tfs/TEE-CLC-10.0.0/tf -login:secretUsername,secretPassword -server:http://secretHost:8080 get -recursive -all -force .
An argument error occurred: Items must reside in a workspace that has been previously used on this computer.
Run Code Online (Sandbox Code Playgroud)

我想我错过了一个步骤,即将本地目录添加到工作区或类似的东西.但我无法弄清楚如何能够下载文件.

linux version-control tfs command-line tf-cli

6
推荐指数
1
解决办法
5409
查看次数

在WiX中,我是否应该为32位和64位版本提供不同的产品ID

我正在编写一个WiX安装程序,它有一套用于32位和64位版本产品的通用WiX源.

问题是,我应该为不同的版本使用不同的产品ID吗?

installer wix

6
推荐指数
1
解决办法
672
查看次数

修复损坏的 postgresql 数据库

这是当 postgresql 尝试在电源故障后启动时发生的情况:

2012-01-27 18:00:44 MSK LOG:  database system was interrupted while in recovery at 2012-01-27 18:00:16 MSK
2012-01-27 18:00:44 MSK HINT:  This probably means that some data is corrupted and you will have to use the last backup for recovery.
2012-01-27 18:00:44 MSK LOG:  database system was not properly shut down; automatic recovery in progress
2012-01-27 18:00:44 MSK LOG:  consistent recovery state reached at 17/762C39B8
2012-01-27 18:00:44 MSK LOG:  redo starts at 17/761F6A40
2012-01-27 18:00:44 MSK FATAL:  invalid page …
Run Code Online (Sandbox Code Playgroud)

postgresql

6
推荐指数
2
解决办法
1万
查看次数

为什么llvm和gcc在x86 64上使用不同的函数序言?

我用gcc和clang编译的一个简单的函数:

void test() {
    printf("hm");
    printf("hum");
}
Run Code Online (Sandbox Code Playgroud)


$ gcc test.c -fomit-frame-pointer -masm=intel -O3 -S

sub rsp, 8
.cfi_def_cfa_offset 16
mov esi, OFFSET FLAT:.LC0
mov edi, 1
xor eax, eax
call    __printf_chk
mov esi, OFFSET FLAT:.LC1
mov edi, 1
xor eax, eax
add rsp, 8
.cfi_def_cfa_offset 8
jmp __printf_chk
Run Code Online (Sandbox Code Playgroud)

$ clang test.c -mllvm --x86-asm-syntax=intel -fomit-frame-pointer -O3 -S    

# BB#0:
push    rax
.Ltmp1:
.cfi_def_cfa_offset 16
mov edi, .L.str
xor eax, eax
call    printf
mov edi, .L.str1
xor eax, eax
pop rdx …
Run Code Online (Sandbox Code Playgroud)

c assembly gcc x86-64 llvm

6
推荐指数
1
解决办法
394
查看次数

Möller-Trumbore射线交叉最快吗?

对于光线跟踪器项目,我一直在研究处理找到光线和三角形之间交叉的算法(由三个顶点定义).到目前为止我发现的是Möller-Trumbore(MT)算法被普遍使用.

所以我的问题是1)是否有MT的替代方案或算法被认为是计算交叉点的最快方法?2)如果是,MT被证明是最优的还是有人可以想象发明更快的算法?

编辑:我现在看到我的问题与Ray-triangle交叉非常相似

algorithm raytracing intersection linear-algebra

6
推荐指数
2
解决办法
3685
查看次数

具有昂贵的自定义键功能的最大列表

在Java中查找您编写的序列的最大元素:

GameState bestGs = Collections.max(ns,
        Comparator.comparing(e -> minimax(e)));
Run Code Online (Sandbox Code Playgroud)

minimax是一个返回数字的函数,ns是一个集合.代码可以工作,但是对于集合的每个元素,将对键函数进行多次评估.我如何制作它,以便每个元素只评估一次?在Python中,您只需编写max(seq, key = lambda e: minimax(e))Java中必须有类似的内容吗?不要告诉我自己写forloop,这是21世纪我不应该的!

显式循环代码如下所示:

GameState best = null;
// Doesn't matter what scalar type is used.
int bestScore = Integer.MIN_VALUE;  
for (GameState n : ns) {
    int thisScore = minimax(n);
    if (thisScore > bestScore) {
        bestScore = thisScore;
        best = n;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想在Java中以"功能"的方式编写上述内容,但也保留了高性能.

java collections max comparator java-8

6
推荐指数
1
解决办法
93
查看次数

找到项目对之间的全局最小距离的算法

项目广告将与项目0-3配对,使得所有项目对之间的总距离最小化.例如,此矩阵可以描述第一组中每个项目与其对应组中的项目之间的距离:

[[2, 2, 4, 9],
 [4, 7, 1, 1],
 [3, 3, 8, 3],
 [6, 1, 7, 8]]
Run Code Online (Sandbox Code Playgroud)

这应该意味着距离'a' - >'0'是2,从'a' - >'1'是2,从'a' - >'2'是4,'a' - >'3 '是9.从'b' - >'0'它是4,依此类推.

是否有一种算法可以将每个字母与一个数字匹配,从而使总距离最小化?例如:

[('a', 1), ('b', 3), ('c', 0), ('d', 2)]
Run Code Online (Sandbox Code Playgroud)

将是一个总距离的合法解决方案:2 + 1 + 3 + 7 = 13.由于现实世界中有超过四个项目的群组,因此无法对所有可能的组合进行强制和测试.

algorithm distance mathematical-optimization minimum

5
推荐指数
1
解决办法
1172
查看次数