gzip compression of resources is not enabled.
AlexBravo opened this issue · 4 comments
Initial loading of Robonaut demo take > 30 sec and mostly bandwidth bound.
From Audit tab:
Enable gzip compression (33)
Compressing the following resources with gzip could reduce their transfer size by about two thirds (~7.4 MB):
three.min.js could save ~285 KB
ColladaLoader2.min.js could save ~52.1 KB
eventemitter2.min.js could save ~4.7 KB
roslib.min.js could save ~10.1 KB
ros3d.min.js could save ~30.9 KB
resources.robotwebtools.org/r2_description/meshes/Stanchion_Baseplate.dae could save ~45.4 KB
resources.robotwebtools.org/r2_description/meshes/Stanchion.dae could save ~518 KB
resources.robotwebtools.org/r2_description/meshes/Body.dae could save ~2.1 MB
resources.robotwebtools.org/r2_description/meshes/Body_Cover.dae could save ~144 KB
resources.robotwebtools.org/r2_description/meshes/Backpack.dae could save ~1.5 MB
resources.robotwebtools.org/r2_description/meshes/Neck_Lower.dae could save ~150 KB
resources.robotwebtools.org/r2_description/meshes/Neck_Upper.dae could save ~152 KB
resources.robotwebtools.org/r2_description/meshes/Head.dae could save ~604 KB
resources.robotwebtools.org/r2_description/meshes/Left_Shoulder_Upper.dae could save ~119 KB
resources.robotwebtools.org/r2_description/meshes/Left_Shoulder_Lower.dae could save ~53.8 KB
resources.robotwebtools.org/r2_description/meshes/Left_Upper_Arm.dae could save ~156 KB
resources.robotwebtools.org/r2_description/meshes/Left_Elbow.dae could save ~73.3 KB
resources.robotwebtools.org/r2_description/meshes/Left_Forearm.dae could save ~188 KB
resources.robotwebtools.org/r2_description/meshes/Left_Palm.dae could save ~94.6 KB
resources.robotwebtools.org/r2_description/meshes/Left_Thumb_Carp.dae could save ~55.5 KB
resources.robotwebtools.org/r2_description/meshes/Left_Thumb_MtCar.dae could save ~77.4 KB
resources.robotwebtools.org/r2_description/meshes/Thumb_Proximal.dae could save ~66.4 KB
resources.robotwebtools.org/r2_description/meshes/Thumb_Dist.dae could save ~96.4 KB
resources.robotwebtools.org/r2_description/meshes/Finger_Proximal.dae could save ~44.1 KB
resources.robotwebtools.org/r2_description/meshes/Finger_Mid.dae could save ~41.2 KB
resources.robotwebtools.org/r2_description/meshes/Finger_Dist.dae could save ~79.3 KB
resources.robotwebtools.org/r2_description/meshes/Right_Shoulder_Upper.dae could save ~111 KB
resources.robotwebtools.org/r2_description/meshes/Right_Shoulder_Lower.dae could save ~50.8 KB
resources.robotwebtools.org/r2_description/meshes/Right_Upper_Arm.dae could save ~152 KB
resources.robotwebtools.org/r2_description/meshes/Right_Elbow.dae could save ~53.6 KB
resources.robotwebtools.org/r2_description/meshes/Right_Forearm.dae could save ~188 KB
resources.robotwebtools.org/r2_description/meshes/Right_Palm.dae could save ~103 KB
resources.robotwebtools.org/r2_description/meshes/Right_Thumb_MtCar.dae could save ~91.3 KB
Good call! I looked into it and it looks like AWS supports serving GZipped files on their CDN platform (cloud front) which is what I am using to server the files. I'll put this on my stack to try it out and see if it works.
Is this still valid issue?
Yes and no. The answer is yes it does support it, but I have not updated the PR2 meshes to do it. We have done and tested it with our CARL robot and local collada models we use. We had to make a script to do it since it's a pain to do manually. Here is ours, we basically would need one for the PR2 but I can't test/verify since we no longer have one in our lab :(
!/bin/bash
TMP="/tmp/aws-rail-collada-models-sync"
SYNC="sync"
RAIL_COLLADA_MODELS="rail_collada_models"
RAIL_COLLADA_MODELS_GITHUB="git@github.com:WPI-RAIL/$RAIL_COLLADA_MODELS.git"
BUCKET="resources.robotwebtools.org"
# Grab current files
echo
echo "Downloading current meshes via GitHub..."
echo
rm -rf $TMP
mkdir $TMP
cd $TMP
git clone $RAIL_COLLADA_MODELS_GITHUB
# Copy non-compressed files
echo
echo "Copying non-compressed files..."
echo
mkdir -p "$TMP/$SYNC/$RAIL_COLLADA_MODELS/meshes/materials"
cp $TMP/$RAIL_COLLADA_MODELS/meshes/materials/* $TMP/$SYNC/$RAIL_COLLADA_MODELS/meshes/materials
# Compress the meshes
echo
echo "Compressing $RAIL_COLLADA_MODELS/meshes/*.min.dae..."
echo
cd $TMP/$RAIL_COLLADA_MODELS/meshes/
for f in *.min.dae ; do gzip -9 -c $f >> $TMP/$SYNC/$RAIL_COLLADA_MODELS/meshes/$f ; done
# Delete the old files
echo
echo "Removing s3://$BUCKET/$RAIL_COLLADA_MODELS..."
echo
aws s3 rm s3://$BUCKET/$RAIL_COLLADA_MODELS --recursive
# Upload new files
echo
echo "Uploading to s3://$BUCKET..."
echo
aws s3 cp $TMP/$SYNC s3://$BUCKET --recursive --content-encoding gzip --content-type application/xml --acl public-read --exclude "*.jpg"
aws s3 cp $TMP/$SYNC s3://$BUCKET --recursive --content-type image/jpeg --acl public-read --exclude "*.min.dae"
Closing since the CARL demo models are now gzipped.