Skip to content

Instantly share code, notes, and snippets.

@qsLI
qsLI / DefaultFuture.java
Created January 15, 2018 06:27
timeout scanner
private static class RemotingInvocationTimeoutScan implements Runnable {
public void run() {
while (true) {
try {
for (DefaultFuture future : FUTURES.values()) {
if (future == null || future.isDone()) {
continue;
}
if (System.currentTimeMillis() - future.getStartTimestamp() > future.getTimeout()) {
var CryptoJS = require('crypto-js')
var request = require('request-promise')
/*
* npm install crypto-js request-promise request
* node wx_t1t_hack.js
*/
// export function testEncription(msg, fullKey) {
// var fullKey = fullKey.slice(0, 16)
@qsLI
qsLI / LongAdder.java
Created December 28, 2017 01:12
long adder
/** Number of CPUS, to place bound on table size */
static final int NCPU = Runtime.getRuntime().availableProcessors();
/**
* Table of cells. When non-null, size is a power of 2.
*/
transient volatile Cell[] cells;
/**
* Base value, used mainly when there is no contention, but also as
@qsLI
qsLI / memcached.sh
Created December 7, 2017 05:22 — forked from ngs/memcached.sh
/etc/init.d/memcached
#! /bin/sh
#
# chkconfig: - 55 45
# description: The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/memcached
# pidfile: /var/run/memcached/memcached.pid
# Standard LSB functions
#. /lib/lsb/init-functions
package com.air.jmh;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
@qsLI
qsLI / CsvCreator.java
Created October 27, 2017 06:12 — forked from shsdev/CsvCreator.java
Using jackson-dataformat-csv to create CSV file out of POJOs
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
git config --global alias.oa '!zsh -c '\''diff --old-line-format='' --new-line-format='' <(git rev-list --first-parent "${1:-master}") <(git rev-list --first-parent "${2:-HEAD}") | head -1'
git config --global alias.branchdiff '!sh -c "git diff `git oa`.."'
git config --global alias.branchlog '!sh -c "git log `git oa`.."'
@qsLI
qsLI / book.java.performance.20160114.md
Last active September 18, 2017 08:55 — forked from zhanhai/book.java.performance.20160114.md
<java性能优化权威指南>读后总结

目的

  • 了解JAVA程序性能调优的过程、原理以及常见方法;在这方面做到“知道自己不知道”;
  • 不用了解太多细节,这些细节的学习需要结合大量实践,只能有机会再深入。

TODO/疑问

  • 为什么优化GC时,要按照“确定内存需求" -> "延迟调优" -> "吞吐量调优"的顺序? 是因为这些指标之间存在该顺序表明的依赖关系?
  • 如何定义性能需求?
acquire lock on object state
while (precondition does not hold) {
release lock
wait until precondition might hold
optional fail if interrupted or timeout expires
require lock
}
perform action
release lock
@qsLI
qsLI / gist:88cb7812e30fd84861fb0e3b2eca2ea6
Created July 25, 2017 12:15 — forked from belm/gist:e9fb50815c4a5e438f70
centos yum install apache maven
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
yum install apache-maven