SmoothWarmingUp( SleepingStopwatch stopwatch, long warmupPeriod, TimeUnit timeUnit, double coldFactor) { super(stopwatch); this.warmupPeriodMicros = timeUnit.toMicros(warmupPeriod); this.coldFactor = coldFactor; }
@Override final double doGetRate() { return SECONDS.toMicros(1L) / stableIntervalMicros; }
SmoothWarmingUp( SleepingStopwatch stopwatch, long warmupPeriod, TimeUnit timeUnit, double coldFactor) { super(stopwatch); this.warmupPeriodMicros = timeUnit.toMicros(warmupPeriod); this.coldFactor = coldFactor; }
private float get(long value, long timeInNanos) { if (value == 0 || timeInNanos == 0) { return 0; } long timeInMicrosec = TimeUnit.NANOSECONDS.toMicros(timeInNanos); return timeInMicrosec / value; }
@Override public long readMicros() { return NANOSECONDS.toMicros(instant); }
abstract void doSetRate(double permitsPerSecond, double stableIntervalMicros);
void sleepMillis(int millis) { sleepMicros("U", MILLISECONDS.toMicros(millis)); }
/** * Acquires the given number of permits from this {@code RateLimiter}, blocking until the request * can be granted. Tells the amount of time slept, if any. * * @param permits the number of permits to acquire * @return time spent sleeping to enforce rate, in seconds; 0.0 if not rate-limited * @throws IllegalArgumentException if the requested number of permits is negative or zero * @since 16.0 (present in 13.0 with {@code void} return type}) */ @CanIgnoreReturnValue public double acquire(int permits) { long microsToWait = reserve(permits); stopwatch.sleepMicrosUninterruptibly(microsToWait); return 1.0 * microsToWait / SECONDS.toMicros(1L); }
@Override public RFuture<V> pollLastAsync(long timeout, TimeUnit unit) { RPromise<V> result = new RedissonPromise<V>(); blockingQueue.takeAsync(result, 0, unit.toMicros(timeout), RedisCommands.RPOP, getName()); return result; }
public RFuture<V> pollAsync(long timeout, TimeUnit unit) { RPromise<V> result = new RedissonPromise<V>(); takeAsync(result, 0, unit.toMicros(timeout), RedisCommands.LPOP, getName()); return result; }
@Override public RFuture<V> pollLastAndOfferFirstToAsync(String queueName, long timeout, TimeUnit unit) { RPromise<V> result = new RedissonPromise<V>(); takeAsync(result, 0, unit.toMicros(timeout), RedisCommands.RPOPLPUSH, getName(), queueName); return result; }
public RFuture<V> pollAsync(long timeout, TimeUnit unit) { RPromise<V> result = new RedissonPromise<V>(); takeAsync(result, 0, unit.toMicros(timeout), RedisCommands.LPOP, getName()); return result; }
@Override public RFuture<V> pollLastAndOfferFirstToAsync(String queueName, long timeout, TimeUnit unit) { RPromise<V> result = new RedissonPromise<V>(); takeAsync(result, 0, unit.toMicros(timeout), RedisCommands.RPOPLPUSH, getName(), queueName); return result; }
@SuppressWarnings("UnnecessaryBoxing") @Test public void loadVideoResourceId_fromInteger_withFrameTime_decodesFrame() { Drawable frame = concurrency.get( GlideApp.with(context) .load(new Integer(ResourceIds.raw.video)) .frame(TimeUnit.SECONDS.toMicros(1)) .submit()); assertThat(frame).isNotNull(); }
@Test public void loadVideoFilePath_asBytes_withFrameTime_providesByteOfFrame() throws IOException { byte[] data = concurrency.get( GlideApp.with(context) .as(byte[].class) .load(writeVideoToFile().getAbsolutePath()) .frame(TimeUnit.SECONDS.toMicros(1)) .submit()); assertThat(data).isNotNull(); assertThat(BitmapFactory.decodeByteArray(data, 0, data.length)).isNotNull(); }
@Test public void loadVideoFileUri_asBytes_withFrameTime_providesByteOfFrame() throws IOException { byte[] data = concurrency.get( GlideApp.with(context) .as(byte[].class) .load(Uri.fromFile(writeVideoToFile())) .frame(TimeUnit.SECONDS.toMicros(1)) .submit()); assertThat(data).isNotNull(); assertThat(BitmapFactory.decodeByteArray(data, 0, data.length)).isNotNull(); }
@Test public void loadVideoResourceId_asBytes_withFrameTime_providesBytesOfFrame() { byte[] data = concurrency.get( GlideApp.with(context) .as(byte[].class) .load(ResourceIds.raw.video) .frame(TimeUnit.SECONDS.toMicros(1)) .submit()); assertThat(data).isNotNull(); assertThat(BitmapFactory.decodeByteArray(data, 0, data.length)).isNotNull(); }
@Test public void loadVideoFile_asBytes_withFrameTime_providesByteOfFrame() throws IOException { byte[] data = concurrency.get( GlideApp.with(context) .as(byte[].class) .load(writeVideoToFile()) .frame(TimeUnit.SECONDS.toMicros(1)) .submit()); assertThat(data).isNotNull(); assertThat(BitmapFactory.decodeByteArray(data, 0, data.length)).isNotNull(); }
@Test public void loadVideoResourceId_fromInt_withFrameTime_decodesFrame() { Drawable frame = concurrency.get( GlideApp.with(context) .load(ResourceIds.raw.video) .frame(TimeUnit.SECONDS.toMicros(1)) .submit()); assertThat(frame).isNotNull(); }
@Test public void loadVideoResourceId_asBitmap_withFrameTime_decodesFrame() { Bitmap frame = concurrency.get( GlideApp.with(context) .asBitmap() .load(ResourceIds.raw.video) .frame(TimeUnit.SECONDS.toMicros(1)) .submit()); assertThat(frame).isNotNull(); }