Skip to content

Instantly share code, notes, and snippets.

@wangzaixiang
wangzaixiang / test2.c
Created February 18, 2013 09:50
Cache Test
//gcc -DPAD=0 -o test2_0 test2.c -lpthread;time ./test2_0 -- 6.5s
//gcc -DPAD=0x0C38 -o test2_0C38 test2.c -lpthread;time ./test2_0C38 -- 15s
#include <stdio.h>
#include <pthread.h>
#include <sys/time.h>
// very suprise, when PAD = 0x0C38, the speed is slow down
typedef struct _Block
{
@wangzaixiang
wangzaixiang / EnumsMacro.scala
Created March 31, 2013 14:30
Macro code to build a enum Just a simple prototype, but maybe useful for future. Learn how to build the AST, I first using the reify and the c.universe.showRaw, and using the scalac -Xprint:4 to show how the compiler generate the reifly code. It is nesseary to learn the reflect API in more deep.
package wangzx.macros
import scala.language.experimental.macros
import scala.reflect.macros.Context
import java.lang.String
import scala.reflect.api.Symbols
object EnumsMacro {
def docs[A](obj: A): Map[Int, String] = macro docsMacro[A]
@wangzaixiang
wangzaixiang / BindDemo.scala
Last active December 17, 2015 09:48
BindMacro, implements feature such as javafx' expression bind
package demo
import reflect_demo.BindMacro._
import reflect_demo._
object BindDemo {
def main(args: Array[String]) {
val x = Box(10)
@wangzaixiang
wangzaixiang / pie.html
Last active December 18, 2015 02:29
JavaScript Performance Test
<script languange="javascript">
var begin = new Date();
var pie = 0;
var loop = 1000 * 1000 * 100;
for(var i=1; i<loop; i++){
var sign = (i % 2) == 0 ? -1.0 : 1.0;
pie = pie + sign / (2*i - 1)
}
@wangzaixiang
wangzaixiang / CodeWriter.scala
Created November 19, 2013 11:04
new Template based on Scala XML
package demo
object CodeWriter {
def main(args: Array[String]) {
val code = new CodeWriter
code.println("package wangzx.javabean")
code.println
code.println("public class Student extends Object");
@wangzaixiang
wangzaixiang / Client.java
Created December 19, 2013 09:05
JMX Demo
package jmxdemo;
import java.io.File;
import java.util.Set;
import javax.management.JMX;
import javax.management.MBeanServerConnection;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
package fbw
object FizzBuzzWhizz {
implicit class RichBoolean(bool: Boolean) {
def option[T](value:T) = if(bool) Some(value) else None
}
implicit class RichOption[T](option:Option[T]) {
def elseFlatMap(value: =>Option[T]) = option match {
case Some(_) => option
@wangzaixiang
wangzaixiang / VolatileTest.java
Created June 18, 2014 11:05
Just for test the anti-volatile example, see http://ifeve.com/java-memory-model-1/
package volatile_demo;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;
public class Test2 {
int a = 0;
int b = 0;
@wangzaixiang
wangzaixiang / mysql-lock-waiting.sh
Created November 24, 2016 12:19
a script to capture information for mysql lock waiting
#!/bin/bash
# crontab
# * * * * * /home/wangzx/mysql-lock-wait/mysql_lock_wait_check.sh
function run_lock_wait() {
now=`date +%s`
seq=$(( $now / 30 % 600 )) # rotate 600 log file in 5 hours
logfile=~/mysql-lock-wait/log/mysql_lock_wait-$seq.log
package demo
import scala.tools.nsc.io.AbstractFile
import scala.tools.nsc.{Global, Phase}
import scala.tools.nsc.plugins.{Plugin, PluginComponent}
class DemoPlugin(val global: Global) extends Plugin {
import global._
override def init(options: List[String], error: String => Unit): Boolean = true