以下の6つの機能を分離し、簡単に切り替えられるようにしたい。
- OSからのメモリアロケータ
- OSからメモリアロケートする部分のAPI
- Rubyのヒープ管理
- ヒープの設定を保持
// XXX should be standard (and named clone, after Java?) | |
Object.prototype.copy = function () { | |
let o = {} | |
for (let i in this) | |
o[i] = this[i] | |
return o | |
} | |
// Containment testing for arrays and strings that should be coherent with their iterator. | |
Array.prototype.contains = String.prototype.contains = function (e) { |
# | |
# A fatal error has been detected by the Java Runtime Environment: | |
# | |
# SIGSEGV (0xb) at pc=0x00007f943ff492ad, pid=13265, tid=1116805440 | |
# | |
# JRE version: 6.0_32-b05 | |
# Java VM: OpenJDK (Taobao) 64-Bit Server VM (20.0-b12-internal mixed mode linux-amd64 compressed oops) | |
# Problematic frame: | |
# J java.lang.Object.<init>()V | |
# |
Program: | |
class Program | |
{ | |
string myString; | |
private Program() | |
{ | |
myString = "foo"; | |
} |
Program: | |
class Program | |
{ | |
string myString; | |
private Program() | |
{ | |
myString = "foo"; | |
} |
Table of names of MemoryManagerMXBean and MemoryPoolMXBean instances under | |
different GC algorithms in Oracle HotSpot VM. Memory managers list the pools | |
they manage in square brackets; memory pools show their maximum sizes for -Xmx200M setting. | |
$ java -version | |
java version "1.6.0_24" | |
Java(TM) SE Runtime Environment (build 1.6.0_24-b07) | |
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode) | |
SerialGC: |
AbstractInterpreter::_code : StubQueue * = 0xb49150c0 | |
_stub_buffer : 0xb6f7a6c0 | |
_number_of_stubs: 0x103 | |
Codelet @ 0xb6f7a6c0 128 -1 0xffffffff 0x10c81a1: "slow signature handler" | |
Dump of assembler code from 0xb6f7a6e0 to 0xb6f7a740: | |
0xb6f7a6e0: mov %esp,%ecx | |
0xb6f7a6e2: call 0xb6f7a6ec | |
0xb6f7a6e7: jmp 0xb6f7a73f | |
0xb6f7a6ec: push %ecx | |
0xb6f7a6ed: push %edi |
#!/bin/sh | |
# This script is for building the hsx/hotspot-comp branch in isolation. | |
# | |
# Prerequisites: | |
# * appropriate build tools | |
# * a working Sun Java 6 build (i.e. JDK6) is available at: | |
# HOME/java/re/j2se/1.6.0/latest/binaries/linux-[i586/amd64] | |
# * a working Sun Java 7 build (i.e. JDK7) is available at: | |
# HOME/java/re/j2se/1.7.0/latest/binaries/linux-[i586/amd64] | |
# HOME/java/re/j2se/1.7.0/promoted/latest/binaries/linux-[i586/amd64] |
package com.headius.indy.examples; | |
import java.lang.invoke.MethodHandle; | |
import static java.lang.invoke.MethodHandles.*; | |
import static java.lang.invoke.MethodType.*; | |
import java.lang.invoke.MutableCallSite; | |
public class IndyLoop { | |
public static void main(String[] args) throws Throwable { | |
// method handle loop adds up numbers from 1 to args[0].to_i |
let inline name (x : ^T) = (^T : (member Name : string) (x)) | |
let inline age (x : ^T) = (^T : (member Age : int) (x)) | |
let inline nameAndAge x = (name x, age x) | |
type Person(name : string, age : int) = | |
member __.Name = name | |
member __.Age = age | |
type Employee(name : string, age : int, employeeId : string) = | |
member __.Name = name |