/client/trunk Developers: partmedia

Login name:
partmedia
Total Commits:
1,277 (31.6%)
Lines of Code:
105,228 (38.7%)
Most Recent Commit:
2019-12-29 21:12

Activity by Clock Time

Activity by Hour of Day for partmedia

Activity by Day of Week for partmedia

Activity in Directories

Directory Changes Lines of Code Lines per Change
Totals 1277 (100.0%) 105228 (100.0%) 82.4
gtk-v2/ui/ 98 (7.7%) 80314 (76.3%) 819.5
gtk-v2/src/ 434 (34.0%) 7956 (7.6%) 18.3
common/ 338 (26.5%) 5311 (5.0%) 15.7
gtk-v2/glade/ 38 (3.0%) 5101 (4.8%) 134.2
sound-src/ 115 (9.0%) 2596 (2.5%) 22.5
/ 129 (10.1%) 2039 (1.9%) 15.8
common/shared/ 6 (0.5%) 767 (0.7%) 127.8
gtk-v2/ 16 (1.3%) 550 (0.5%) 34.3
cmake/ 2 (0.2%) 262 (0.2%) 131.0
macros/ 37 (2.9%) 170 (0.2%) 4.5
pixmaps/ 28 (2.2%) 98 (0.1%) 3.5
utils/ 7 (0.5%) 34 (0.0%) 4.8
gtk-v2/win32/ 13 (1.0%) 28 (0.0%) 2.1
help/ 6 (0.5%) 1 (0.0%) 0.1
gtk-v2/themes/ 4 (0.3%) 1 (0.0%) 0.2
doc/examples/script/ 2 (0.2%) 0 (0.0%) 0.0
doc/ 1 (0.1%) 0 (0.0%) 0.0
Documentation/examples/script/ 2 (0.2%) 0 (0.0%) 0.0
Documentation/ 1 (0.1%) 0 (0.0%) 0.0

Activity of partmedia

Most Recent Commits

partmedia 2019-12-29 21:12 Rev.: 21076

Refactor; remove notes about performance

There is probably no performance benefit from reducing the number of
calls to mapdata_cell(). However, this particular change made the code
more readable, so keep this change. I refactored the scope of the new
temporary MapCell variables.

I compared the assembly of the old code with the new code. I used clang
8.0.1 with -O2 on FreeBSD/amd64. In both versions, the assembly has
mapdata_cell() inlined and lifted out of the inner loop:

movq the_map(%rip), %r12
movslq %edi, %r13
movslq %esi, %rax
imulq $152, %rax, %r15
movq (%r12,%r13,8), %rdi
addq %r15, %rdi

Even though the old code has multiple calls and the new code has an
intermediate variable, both generated the same code! Notice how the
result of "calling" mapdata_cell() is never stored in memory; it stays
in a register.

In general, in the age of deep pipelines, large caches, and speculative
execution, even comparing assembly is generally not enough. However,
when both versions produce the same assembly, it's a pretty convincing
argument that there is no performance benefit.

There are plenty of inefficiencies hanging around in the client, for
example, the unnecessary double-buffering in Pixmap mode, that when
fixed would produce a measurable performance benefit. But trying to
outsmart the compiler probably isn't going to do much.

3 lines of code changed in 2 files:

  • ChangeLog (+1 -2)
  • common: mapdata.c (+2 -7)
partmedia 2019-12-25 06:51 Rev.: 21057

Bump version string to 1.74.0

4 lines of code changed in 2 files:

  • CMakeLists.txt (+1 -1), ChangeLog (+3 -2)
partmedia 2019-08-31 10:54 Rev.: 20996

Add latency profile printer

26 lines of code changed in 1 file:

  • utils: pprof-latency.py (new 26)
partmedia 2019-08-31 10:54 Rev.: 20995

Replace non-null assertion with null check

This assertion gets triggered when the server exits right when the
client is connecting. Exit with an error instead.

6 lines of code changed in 1 file:

  • gtk-v2/src: main.c (+6 -1)
partmedia 2019-08-31 10:53 Rev.: 20994

Make profiling output easier to parse

3 lines of code changed in 2 files:

  • common: player.c (+2 -2)
  • gtk-v2/src: map.c (+1 -1)
partmedia 2019-08-27 22:43 Rev.: 20980

Remove inventory table column limit

32 lines of code changed in 2 files:

  • ChangeLog (+2 -1)
  • gtk-v2/src: inventory.c (+30 -30)
partmedia 2019-08-18 20:38 Rev.: 20976

Fix table view for large inventories

Fun fact: this bug has been here since the GTKv2 client landed in r3083!

3 lines of code changed in 2 files:

  • ChangeLog (+2)
  • gtk-v2/src: inventory.c (+1 -1)
partmedia 2019-08-18 20:38 Rev.: 20975

Simplify cell removal

2 lines of code changed in 1 file:

  • gtk-v2/src: inventory.c (+2 -21)
partmedia 2019-08-18 20:38 Rev.: 20974

Use one treestore for all tab views

21 lines of code changed in 1 file:

  • gtk-v2/src: inventory.c (+21 -20)
partmedia 2019-08-18 18:10 Rev.: 20973

Avoid redrawing on expose event

Since the inventory table is already redrawn when the main loop is idle,
avoid redrawing on expose to prevent the main loop from freezing up from
expose events when the redraw time is long.

0 lines of code changed in 1 file:

  • gtk-v2/src: inventory.c (-18)
partmedia 2019-08-18 18:10 Rev.: 20972

Make code more readable

7 lines of code changed in 1 file:

  • common: item.c (+7 -3)
partmedia 2019-08-18 18:10 Rev.: 20971

Remove unnecessary helper

1 lines of code changed in 1 file:

  • common: commands.c (+1 -14)
partmedia 2019-08-09 19:37 Rev.: 20933

Check for NULL

4 lines of code changed in 1 file:

  • common: client.c (+4 -2)
partmedia 2019-08-09 19:37 Rev.: 20932

Add protocol debugging command-line option

14 lines of code changed in 5 files:

  • ChangeLog (+1)
  • common: client.c (+5 -1), client.h (+2), newsocket.c (+3)
  • gtk-v2/src: main.c (+3)
partmedia 2019-08-09 19:36 Rev.: 20931

Remove more calls to draw_lists()

0 lines of code changed in 1 file:

  • gtk-v2/src: inventory.c (-2)
partmedia 2019-08-09 19:35 Rev.: 20930

Disconnect after receiving an unknown command

10 lines of code changed in 2 files:

  • common: client.c (+8 -1), proto.h (+2)
partmedia 2019-08-08 09:22 Rev.: 20926

Avoid unnecessary calls to draw_lists()

This speeds up inventory redraw when picking up and dropping many items.

2 lines of code changed in 2 files:

  • ChangeLog (+1)
  • gtk-v2/src: main.c (+1 -2)
partmedia 2019-08-08 09:22 Rev.: 20925

Log events on client start

13 lines of code changed in 2 files:

  • gtk-v2/src: image.c (-3), main.c (+13)
partmedia 2019-08-08 09:21 Rev.: 20924

Log time elapsed with LOG()

6 lines of code changed in 3 files:

  • common: client.h (+2), misc.c (+3 -1)
  • gtk-v2/src: main.c (+1)
partmedia 2019-07-29 20:54 Rev.: 20922

Remove unused adjustments

0 lines of code changed in 1 file:

  • gtk-v2/ui: dialogs.ui (-30)

(385 more)

Generated by StatSVN 0.7.0