Skip to content

Instantly share code, notes, and snippets.

@mattwarren
mattwarren / ProfileDirectwithStore-BROKEN.asm
Created September 23, 2014 17:02
Profile Direct with Store (BROKEN)
; 324: for (int i = 0; i < iterations; i++)
000001c8 mov r12d,dword ptr [rbp+68h]
000001cc test r12d,r12d
000001cf jle 0000000000000209
000001d1 xor ebx,ebx
; 325: {
; 326: resultObject = Math.Sqrt(123.456); // FAIL this is boxing a double -> object
000001d3 sqrtsd xmm0,mmword ptr [00000398h]
000001db movsd mmword ptr [rbp+20h],xmm0
000001e0 lea rdx,[rbp+20h]
@mattwarren
mattwarren / ProfileDirectwithStore-FIXED.asm
Created September 23, 2014 17:03
Profile Direct with Store (FIXED)
; 347: for (int i = 0; i < iterations; i++)
000001cb mov r12d,dword ptr [rbp+68h]
000001cf test r12d,r12d
000001d2 jle 0000000000000203
000001d4 xor eax,eax
000001d6 nop word ptr [rax+rax+00000000h]
; 348: {
; 349: resultDouble += Math.Sqrt(123.456);
000001e0 movsd xmm1,mmword ptr [FFEE08E8h]
000001e8 sqrtsd xmm0,mmword ptr [00000408h]
namespace BloomFilter
{
using System;
using System.Collections;
/// <summary>
/// Bloom filter.
/// </summary>
/// <typeparam name="T">Item type </typeparam>
public class Filter<T>
vb6 vba vb homework grails coldfusion flash iphone air sifr ms-access db2 vbscript perl sap jpa gql java-ee magento ipad qt weblogic blackberry gwt pentaho wordpress mac corba intellij-idea lucene safari seo redis itouch ant antlr ada gtk doctrine lotus tomcat jcl mongodb netlogo nosql smalltalk beamer spring symbian agile firebird samba jasper-reports sybase fortran qtp itunes sqlite soapui acrobat actionscript* flex* cocoa* struts* ruby* zend* *php* java-* joomla* maven* *hibernate* ipod* xcode* jboss* dotnetnuke* *facebook* java groovy* *jaxb* kanban iphone* telerik osx python* jsf* jquery* r latex oracle* android* devexpress umbraco* wolfram-mathematica awk sed *dreamweaver* symfony* crystal-reports* alfresco *postgres* dojo* codeigniter* xbap oscommerce cucumber mod-rewrite mysql* jpa* extjs semantic-web kohana* django* sqlalchemy cufon birt .htaccess inno-setup jira drupal* postscript swf* automapper ssas jms asterisk amazon-ecs ios* delphi* labview jvm* *payment* *dynamics* yahoo-pipes websphere* siebe
@mattwarren
mattwarren / ConsoleDemo.java
Last active August 29, 2015 14:11
Console Demo showing Windows Console Encoding Issues with '±'
public class ConsoleDemo {
public static void main(String[] args) {
// From http://stackoverflow.com/questions/4005378/console-writeline-and-system-out-println/4005717#4005717
// '\u00B1' is the same as '±', see http://www.fileformat.info/info/unicode/char/b1/index.htm
String data = "%-35s: %.2f ±(95%%) %.2f \u00B1(99%%)";
// This doesn't work '±' is replaced by '▒'
// System.out.println : 10.30 ▒(95%) 10.40 ▒(99%)
System.out.println(String.format(data, "System.out.println", 10.3, 10.4));
@mattwarren
mattwarren / ReflectionBenchmark.java
Last active August 29, 2015 14:11
JMH Benchmark of Reflection Method Call v. Regular Method Call (against the same function)
package org.sample;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.annotations.Setup;
import java.util.concurrent.TimeUnit;
import java.lang.reflect.*;
@mattwarren
mattwarren / ReflectionBenchmarkRESULTS
Last active August 29, 2015 14:11
JMH Benchmark RESULTS - Reflection Method Call v. Regular Method Call (against the same function)
# JMH 1.4-SNAPSHOT (released 3 days ago)
# VM invoker: C:\Program Files\Java\jre7\bin\java.exe
# VM options: <none>
# Warmup: 10 iterations, 1 s each
# Measurement: 10 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: org.sample.MyBenchmark.baseline
Marker("for loop (hand-written)");
000004b2 mov ecx,128533E8h
000004b7 mov rcx,qword ptr [rcx]
000004ba call FFFFFFFFFFFFF668
111: for (int i = 0; i < 10; i++)
000004bf xor ebx,ebx
112: {
113: Console.Write("{0}, ", numsArray[i]);
000004c1 mov rcx,7FEF70A03F8h
000004cb call 000000005F672470
Marker("foreach over an Array");
00000526 mov ecx,128533F8h
0000052b mov rcx,qword ptr [rcx]
0000052e call FFFFFFFFFFFFF668
118: foreach (var num in numsArray)
00000533 xor ebx,ebx
00000535 cmp dword ptr [rsi+8],0
00000539 jle 000000000000057D
0000053b movsxd rcx,ebx
0000053e mov r14d,dword ptr [rsi+rcx*4+10h]
Marker("foreach over a List");
00000597 mov ecx,12853400h
0000059c mov rcx,qword ptr [rcx]
0000059f call FFFFFFFFFFFFF668
125: foreach (var num in numsList)
000005a4 mov ecx,dword ptr [rdi]
000005a6 mov ecx,dword ptr [rdi+1Ch]
000005a9 xor eax,eax
000005ab mov qword ptr [rbp-38h],rdi
000005af mov dword ptr [rbp-30h],eax