Skip to content

Instantly share code, notes, and snippets.

View He-Pin's full-sized avatar
🎈
Playing Xenoblade 3

He-Pin(kerr) He-Pin

🎈
Playing Xenoblade 3
View GitHub Profile
@He-Pin
He-Pin / readme.md
Created October 12, 2022 17:01 — forked from lukestephenson/readme.md
zio-streams performance observations

Background

I'm a long time user of reactive streams in Scala. Originally with akka-streams, and then Monix Observable.

The transition from akka streams to Monix Observable I found pretty straight forward. I was motivated by wanting to use a lazy effect system, rather than working with scala.concurrent.Future.

More recently I've been considering fs2 and Zio Streams as an alternative to Monix Observable. This has largely been motivated by the fact that Monix doesn't have much ongoing development and is stuck on cats-effect 2.

I've not found the transition from Monix Observable to Zio Streams as easy as my earlier transition (from akka -> monix). While the ergonomics of the API are similar, performance characterics differ hugely.

Chunking

@He-Pin
He-Pin / ReactorNotWorking.java
Created March 12, 2019 14:26
ReactorNotWorking
package com.alibaba.wireless.process.message.single.impl;
import com.alibaba.wireless.utils.NamedPoolThreadFactory;
import com.taobao.wireless.ripple2.core.util.SaneRejectedExecutionHandler;
import org.reactivestreams.Subscriber;
import org.reactivestreams.Subscription;
import reactor.core.publisher.Flux;
import reactor.core.scheduler.Schedulers;
import java.io.IOException;
package com.alibaba.wireless.process.message.single.impl;
import com.alibaba.wireless.utils.NamedPoolThreadFactory;
import com.taobao.wireless.ripple2.core.util.SaneRejectedExecutionHandler;
import org.reactivestreams.Subscriber;
import org.reactivestreams.Subscription;
import reactor.core.publisher.Flux;
import reactor.core.scheduler.Schedulers;
import java.io.IOException;
@He-Pin
He-Pin / fpmax.scala
Created July 13, 2018 03:26 — forked from jdegoes/fpmax.scala
FP to the Max — Code Examples
package fpmax
import scala.util.Try
import scala.io.StdIn.readLine
object App0 {
def main: Unit = {
println("What is your name?")
val name = readLine()
Using:
* 8 threads
* 1024 concurrent connections
* run for 20 seconds
* 64 requests pipelined
## VERTX
norman@dev-linux:~/workspace/vertx-examples/src/main/java$ vertx run httpperf/PerfServer.java -instances 4
package com.pekall.cd.mdm.web.adminweb.rpc.builder;
import com.fasterxml.jackson.databind.JsonNode;
import com.ning.http.client.*;
import com.ning.http.multipart.FilePart;
import com.pekall.cd.mdm.web.adminweb.rpc.PageSplit;
import com.pekall.cd.mdm.web.adminweb.rpc.http.constant.MDMWebConstants;
import com.pekall.cd.mdm.web.adminweb.rpc.http.constant.MDMWebQueryKey;
import play.Logger;
@He-Pin
He-Pin / BaseService.java
Created November 21, 2013 07:51
sequence call
protected static class Pair<A, B> {
public A a;
public B b;
public Pair() {
}
public Pair(A a, B b) {
this.a = a;
this.b = b;
@He-Pin
He-Pin / device detail
Created September 10, 2013 05:34
json with "/"
{"result":"0","records":9,"devices":[{"language":null,"id":288,"type":50702,"policy":null,"password":null,"status":50001,"roles":1,"fullName":"admin","email":"pekall@pekall.com","firstName":"","lastName":null,"username":"admin","enterpriseId":1,"userId":1,"os":51201,"updateTime":1378709412000,"phoneNumber":null,"deviceUuid":"sdsdsdsdsddswdsdsdsss","iosUdid":"sdsdsdsdsddswdsdsdsss","lastCheckin":1378709412000,"deviceDetail":null,"createTime":null,"securityInfo":null,"labelNames":null,"appList":null,"connect":0,"policyName":"lccTestPolicy","settingName":"默认Android设置","deviceLabels":null,"policySpecial":0,"settingSpecial":0,"appSetting":null},{"language":null,"id":285,"type":50701,"policy":null,"password":null,"status":50001,"roles":1,"fullName":null,"email":null,"firstName":null,"lastName":null,"username":"huawei","enterpriseId":1,"userId":307,"os":51201,"updateTime":1378550603000,"phoneNumber":null,"deviceUuid":"000311e2a21b78c400000140f7fc70b6","iosUdid":"000311e2a21b78c400000140f7fc70b6","lastCheckin":137855
@He-Pin
He-Pin / DeviceService.java
Created September 8, 2013 17:13
play wow
//for user service
public static Result listUserDeviceWS(){
return handleGET(new DefaultGETHandler("userName")
.queryHandler(new DefaultGETHandler.QueryHandler() {
@Override
public Result handle(final String queryValue) {
final Promise<Result> resultPromise =
rpcUserDeviceList(queryValue)
.map(new F.Function<MDMDeviceListResponse, Result>() {
@Override
package com.pekall.cd.mdm.web.admin.rpc.builder;
import com.ning.http.client.Request;
import com.ning.http.client.RequestBuilder;
/**
* Author: kerr
* Mail: pin.he@pekall.com
*/
public abstract class AbstractBuilder implements Builder {