Skip to content

Instantly share code, notes, and snippets.

@Dispader
Last active April 15, 2016 21:11
Show Gist options
  • Save Dispader/120a2cbd24b62057cb8f8e0b06d8f9f1 to your computer and use it in GitHub Desktop.
Save Dispader/120a2cbd24b62057cb8f8e0b06d8f9f1 to your computer and use it in GitHub Desktop.
talk outline

Extemporaneous Coding

motivation

  • flow
  • low barrier to investigation
  • prototype -> project

irb

groovysh

:grab

get available heap memory

import java.lang.management.ManagementFactory
used = ManagementFactory.memoryMXBean.heapMemoryUsage.used

JVM management beans + basic UI + threadding

303  import javax.swing.JFrame
 304  import javax.swing.JLabel
 305  frame = new JFrame('heap usage')
 306  label = new JLabel('000000000')
 307  frame.contentPane.add(label)
 308  frame.visible = true
 309  frame.alwaysOnTop = true
 310  frame.pack()
 311  label.font = label.font.deriveFont 40
 312  label.font = label.font.deriveFont(40)
 313  frame.pack()
 314  label.font = label.font.deriveFont(100)
 315  frame.pack()
 316  frame.contentPane.add(label)
 317  frame.pack()
 318  label.font = label.font.deriveFont(40.0)
 319  frame.pack()
 320  label.font = label.font.deriveFont(80.0)
 321  frame.pack()
 322  label.text = java.lang.management.ManagementFactory.memoryMXBean.heapMemoryUsage.used
 323  sleep 1
 324  sleep 10
 325  sleep 100
 326  sleep(1000)
 327  Thread.start { sleep 1000; label.text = java.lang.management.ManagementFactory.memoryMXBean.heapMemoryUsage.used }
 328  label.text = java.lang.management.ManagementFactory.memoryMXBean.heapMemoryUsage.used
 329  String getHeap() { java.lang.management.ManagementFactory.memoryMXBean.heapMemoryUsage.used }
 330  getHeap()
 331  Thread.start { sleep 1000; label.text = getHeap() }
 332  Thread.start { while(true) { sleep 1000; label.text = getHeap() } }
 333  import javax.swing.JFrame
 334  import javax.swing.JLabel
 335  frame = new JFrame('heap usage')
 336  label = new JLabel('000000000')
 337  frame.contentPane.add(label)
 338  frame.visible = true
 339  frame.alwaysOnTop = true
 340  frame.pack()
 341  label.font = label.font.deriveFont(40.0)
 342  frame.pack()
 343  Thread.start { while(true) { sleep 1000; label.text = getHeap() } }
 344  String getHeap() { java.lang.management.ManagementFactory.memoryMXBean.heapMemoryUsage.used }
 345  Thread.start { while(true) { sleep 1000; label.text = getHeap() } }
 346  frame.setVisible false

Grab command

:load https://git.io/v2N1I
:register GrabCommand

:grab 'com.j256.simplejmx:simplejmx:1.12'

explore a new library

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment