Skip to content

Commit

Permalink
Improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
jonatan-ivanov committed Dec 16, 2022
1 parent e8044c0 commit 41f6819
Show file tree
Hide file tree
Showing 47 changed files with 118 additions and 160 deletions.
16 changes: 10 additions & 6 deletions perf-test/src/gatling/scala/simulations/heap/HeapSimulation.scala
Original file line number Diff line number Diff line change
@@ -1,27 +1,31 @@
package simulations.heap

import java.time.Duration
import io.gatling.core.Predef._
import io.gatling.http.HeaderNames.{Accept, ContentType}
import io.gatling.http.HeaderValues._
import io.gatling.http.Predef._
import io.gatling.http.protocol.HttpProtocolBuilder

import java.time.Duration
import scala.annotation.unused

/**
* @author Jonatan Ivanov
*/

@unused
class HeapSimulation extends Simulation {
val size = "512KB"
val ttl: Duration = Duration.ofMinutes(1)
val rate = 10 // 5MB/sec (300MB/min), 10 objects/sec (600 objects/min)
val duration = 300
private val size = "512KB"
private val ttl: Duration = Duration.ofMinutes(1)
private val rate = 10 // 5MB/sec (300MB/min), 10 objects/sec (600 objects/min)
private val duration = 300

println(s"size: $size")
println(s"ttl: $ttl")
println(s"rate: $rate")
println(s"duration: $duration")

val httpProtocol: HttpProtocolBuilder = http
private val httpProtocol: HttpProtocolBuilder = http
.baseUrl("http://localhost:8080")
.contentTypeHeader(ApplicationJson)
.acceptHeader(ApplicationJson)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
* @author Jonatan Ivanov
*/
@Configuration
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
public class ModelAssemblerConfig {
@Bean
ModelAssembler<ClassResource> classResourceModelAssembler(EntityLinks entityLinks) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
@ExposesResourceFor(ClassResourceModel.class)
@Tag(name = "Classes")
public class ClassResourceController extends ResourceController<CreateClassResourceRequest, ClassResource> {
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
public ClassResourceController(
PagedResourcesAssembler<ClassResource> pagedAssembler,
ModelAssembler<ClassResource> modelAssembler,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
public class ContainerThreadResourceController extends ResourceController<CreateContainerThreadResourceRequest, ContainerThreadResource> {
private final ContainerThreadResourceClient client;

@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
public ContainerThreadResourceController(
PagedResourcesAssembler<ContainerThreadResource> pagedAssembler,
ModelAssembler<ContainerThreadResource> modelAssembler,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
@ExposesResourceFor(CpuResourceModel.class)
@Tag(name = "CPU Cores")
public class CpuResourceController extends ResourceController<CreateCpuResourceRequest, CpuResource> {
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
public CpuResourceController(
PagedResourcesAssembler<CpuResource> pagedAssembler,
ModelAssembler<CpuResource> modelAssembler,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
@ExposesResourceFor(DaemonThreadResourceModel.class)
@Tag(name = "Threads")
public class DaemonThreadResourceController extends ResourceController<CreateDaemonThreadResourceRequest, DaemonThreadResource> {
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
public DaemonThreadResourceController(
PagedResourcesAssembler<DaemonThreadResource> pagedAssembler,
ModelAssembler<DaemonThreadResource> modelAssembler,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
@ExposesResourceFor(FileResourceModel.class)
@Tag(name = "Files")
public class FileResourceController extends ResourceController<CreateFileResourceRequest, FileResource> {
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
public FileResourceController(
PagedResourcesAssembler<FileResource> pagedAssembler,
ModelAssembler<FileResource> modelAssembler,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
@ExposesResourceFor(HeapResourceModel.class)
@Tag(name = "Heap Objects")
public class HeapResourceController extends ResourceController<CreateHeapResourceRequest, HeapResource> {
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
public HeapResourceController(
PagedResourcesAssembler<HeapResource> pagedAssembler,
ModelAssembler<HeapResource> modelAssembler,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ public class HttpResourceController extends ResourceController<CreateHttpResourc
private final String url;
private final HttpBlobClient client;

@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
public HttpResourceController(
PagedResourcesAssembler<HttpResource> pagedAssembler,
ModelAssembler<HttpResource> modelAssembler,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
@ExposesResourceFor(MeterResourceModel.class)
@Tag(name = "Micrometer Meter Objects")
public class MeterResourceController extends ResourceController<CreateMeterResourceRequest, MeterResource> {
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
public MeterResourceController(
PagedResourcesAssembler<MeterResource> pagedAssembler,
ModelAssembler<MeterResource> modelAssembler,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
@ExposesResourceFor(OffHeapResourceModel.class)
@Tag(name = "Off-Heap Direct Buffers")
public class OffHeapResourceController extends ResourceController<CreateOffHeapResourceRequest, OffHeapResource> {
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
public OffHeapResourceController(
PagedResourcesAssembler<OffHeapResource> pagedAssembler,
ModelAssembler<OffHeapResource> modelAssembler,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
@ExposesResourceFor(SocketResourceModel.class)
@Tag(name = "Sockets")
public class SocketResourceController extends ResourceController<CreateSocketResourceRequest, SocketResource> {
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
public SocketResourceController(
PagedResourcesAssembler<SocketResource> pagedAssembler,
ModelAssembler<SocketResource> modelAssembler,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@
* @author Jonatan Ivanov
*/
public interface CreateRequest {
Duration getTtl();
Duration ttl();
}
1 change: 1 addition & 0 deletions src/main/java/resourceater/model/resource/Resource.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.time.Duration;
import java.time.Instant;
import java.util.Optional;

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package resourceater.model.resource.clazz;

import static java.lang.String.format;
import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
import static org.objectweb.asm.Opcodes.V12;

import java.util.ArrayList;
import java.util.List;

import org.objectweb.asm.ClassWriter;
import resourceater.model.resource.Model;
import resourceater.model.resource.Resource;

import static java.lang.String.format;
import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
import static org.objectweb.asm.Opcodes.V12;

/**
* @author Jonatan Ivanov
*/
Expand All @@ -20,8 +21,8 @@ public class ClassResource extends Resource<ClassResource> {
private final List<Class<?>> classes = new ArrayList<>();

public ClassResource(CreateClassResourceRequest request) {
super(request.getTtl());
for (int i = 0; i < request.getSize(); i++) {
super(request.ttl());
for (int i = 0; i < request.size(); i++) {
classes.add(generateClass(format("%s$%d", getId(), i)));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
@Value
@EqualsAndHashCode(callSuper=true)
public class ClassResourceModel extends Model<ClassResource> {
private final int size;
int size;

public ClassResourceModel(ClassResource resource, int size) {
super(resource);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
package resourceater.model.resource.clazz;

import java.time.Duration;
import lombok.Value;

import resourceater.model.resource.CreateRequest;

/**
* @author Jonatan Ivanov
*/
@Value
public class CreateClassResourceRequest implements CreateRequest {
private final int size;
private final Duration ttl;
public record CreateClassResourceRequest(int size, Duration ttl) implements CreateRequest {
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package resourceater.model.resource.cpu;

import static java.util.concurrent.TimeUnit.SECONDS;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ThreadPoolExecutor;

import lombok.extern.slf4j.Slf4j;
import resourceater.model.resource.Model;
import resourceater.model.resource.Resource;

import static java.util.concurrent.TimeUnit.SECONDS;

/**
* @author Jonatan Ivanov
*/
Expand All @@ -18,8 +19,8 @@ public class CpuResource extends Resource<CpuResource> {
private final int size;

public CpuResource(CreateCpuResourceRequest request) {
super(request.getTtl());
this.size = request.getSize();
super(request.ttl());
this.size = request.size();
this.executorService = new ThreadPoolExecutor(this.size, this.size, 0, SECONDS, new ArrayBlockingQueue<>(1));
for (int i = 0; i < size; i++) {
executorService.submit(this::run);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
@Value
@EqualsAndHashCode(callSuper=true)
public class CpuResourceModel extends Model<CpuResource> {
private final int size;
int size;

public CpuResourceModel(CpuResource resource, int size) {
super(resource);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
package resourceater.model.resource.cpu;

import java.time.Duration;
import lombok.Value;

import resourceater.model.resource.CreateRequest;

/**
* @author Jonatan Ivanov
*/
@Value
public class CreateCpuResourceRequest implements CreateRequest {
private final int size;
private final Duration ttl;
public record CreateCpuResourceRequest(int size, Duration ttl) implements CreateRequest {
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
package resourceater.model.resource.file;

import java.time.Duration;
import lombok.Value;

import resourceater.model.resource.CreateRequest;

/**
* @author Jonatan Ivanov
*/
@Value
public class CreateFileResourceRequest implements CreateRequest {
private final String size;
private final Duration ttl;
public record CreateFileResourceRequest(String size, Duration ttl) implements CreateRequest {
}
12 changes: 7 additions & 5 deletions src/main/java/resourceater/model/resource/file/FileResource.java
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
package resourceater.model.resource.file;

import static java.nio.file.StandardOpenOption.CREATE_NEW;
import static java.nio.file.StandardOpenOption.WRITE;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.time.Duration;

import lombok.extern.slf4j.Slf4j;
import org.springframework.util.unit.DataSize;
import resourceater.model.resource.Model;
import resourceater.model.resource.Resource;

import org.springframework.util.unit.DataSize;

import static java.nio.file.StandardOpenOption.CREATE_NEW;
import static java.nio.file.StandardOpenOption.WRITE;

/**
* @author Jonatan Ivanov
*/
Expand All @@ -24,7 +26,7 @@ public class FileResource extends Resource<FileResource> {
private final File file;

public FileResource(CreateFileResourceRequest request) {
this(DataSize.parse(request.getSize()), request.getTtl());
this(DataSize.parse(request.size()), request.ttl());
}

private FileResource(DataSize dataSize, Duration ttl) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
@Value
@EqualsAndHashCode(callSuper=true)
public class FileResourceModel extends Model<FileResource> {
private final long size;
private final String path;
long size;
String path;

public FileResourceModel(FileResource resource, long size, String path) {
super(resource);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
package resourceater.model.resource.heap;

import java.time.Duration;
import lombok.Value;

import resourceater.model.resource.CreateRequest;

/**
* @author Jonatan Ivanov
*/
@Value
public class CreateHeapResourceRequest implements CreateRequest {
private final String size;
private final Duration ttl;
public record CreateHeapResourceRequest(String size, Duration ttl) implements CreateRequest {
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package resourceater.model.resource.heap;

import java.time.Duration;
import org.springframework.util.unit.DataSize;

import resourceater.model.resource.Model;
import resourceater.model.resource.Resource;

import org.springframework.util.unit.DataSize;

/**
* @author Jonatan Ivanov
*/
Expand All @@ -13,7 +15,7 @@ public class HeapResource extends Resource<HeapResource> {
private final byte[] bytes;

public HeapResource(CreateHeapResourceRequest request) {
this(DataSize.parse(request.getSize()), request.getTtl());
this(DataSize.parse(request.size()), request.ttl());
}

private HeapResource(DataSize dataSize, Duration ttl) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
@Value
@EqualsAndHashCode(callSuper=true)
public class HeapResourceModel extends Model<HeapResource> {
private final long size;
long size;

public HeapResourceModel(HeapResource resource, long size) {
super(resource);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,10 @@
import java.time.Duration;

import io.micrometer.core.instrument.Meter;
import lombok.Value;
import resourceater.model.resource.CreateRequest;

/**
* @author Jonatan Ivanov
*/
@Value
public class CreateMeterResourceRequest implements CreateRequest {
private final int size;
private final Meter.Type type;
private final Duration ttl;
public record CreateMeterResourceRequest(int size, Meter.Type type, Duration ttl) implements CreateRequest {
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public class MeterResource extends Resource<MeterResource> {
private final List<Meter.Id> meters;

public MeterResource(CreateMeterResourceRequest request) {
this(request.getSize(), request.getType(), request.getTtl());
this(request.size(), request.type(), request.ttl());
}

public MeterResource(int count, Meter.Type type, Duration ttl) {
Expand Down
Loading

0 comments on commit 41f6819

Please sign in to comment.