[TIMOB-24829] Hyperloop: Android - Slow Compile-time, too many JS-wrappers generated
GitHub Issue | n/a |
---|---|
Type | Improvement |
Priority | Critical |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2017-11-20T10:28:06.000+0000 |
Affected Version/s | Hyperloop 2.1.1 |
Fix Version/s | Hyperloop 2.2.0 |
Components | Android, Hyperloop |
Labels | android, hyperloop |
Reporter | Michael Gangolf |
Assignee | Jan Vennemann |
Created | 2017-06-15T13:00:03.000+0000 |
Updated | 2017-11-20T20:30:18.000+0000 |
Description
When compiling an Android Hyperloop project it takes a long time to compile a project.
{quote}
[INFO] Processing JavaScript files
{quote}
Takes a very long time (minutes!) and results in:
{quote}
[INFO] Encrypting JavaScript files: /home/miga/.titanium/mobilesdk/linux/6.1.0.GA/android/titanium_prep.linux64 "com.miga.calendarview" "/home/miga/dev/titanium/hyper.cal/build/android/assets" "alloy/CFG.js" "app.js" "alloy/backbone.js" "alloy/constants.js" "alloy/controllers/BaseController.js" "alloy/controllers/index.js" "alloy/styles/index.js" "alloy/sync/localStorage.js" "alloy/sync/properties.js" "alloy/sync/sql.js" "alloy/underscore.js" "alloy/widget.js" "alloy.js" "calendar-android.js" "hyperloop/android.accounts.Account.js" "hyperloop/android.accounts.js" "hyperloop/android.animation.Animator$AnimatorListener.js" "hyperloop/android.animation.Animator$AnimatorPauseListener.js" "hyperloop/android.animation.Animator.js" "hyperloop/android.animation.LayoutTransition$TransitionListener.js" "hyperloop/android.animation.LayoutTransition.js" "hyperloop/android.animation.StateListAnimator.js" "hyperloop/android.animation.TimeInterpolator.js" "hyperloop/android.animation.TypeEvaluator.js" "hyperloop/android.animation.ValueAnimator$AnimatorUpdateListener.js" "hyperloop/android.animation.ValueAnimator.js" "hyperloop/android.animation.js" "hyperloop/android.app.ActionBar$LayoutParams.js" "hyperloop/android.app.ActionBar$OnMenuVisibilityListener.js" "hyperloop/android.app.ActionBar$OnNavigationListener.js" "hyperloop/android.app.ActionBar$Tab.js" "hyperloop/android.app.ActionBar$TabListener.js" "hyperloop/android.app.ActionBar.js" "hyperloop/android.app.Activity.js" "hyperloop/android.app.ActivityManager$TaskDescription.js" "hyperloop/android.app.ActivityManager.js" "hyperloop/android.app.Application$ActivityLifecycleCallbacks.js" "hyperloop/android.app.Application$OnProvideAssistDataListener.js" "hyperloop/android.app.Application.js" "hyperloop/android.app.Dialog.js" "hyperloop/android.app.Fragment$InstantiationException.js" "hyperloop/android.app.Fragment$SavedState.js" "hyperloop/android.app.Fragment.js" "hyperloop/android.app.FragmentManager$BackStackEntry.js" "hyperloop/android.app.FragmentManager$OnBackStackChangedListener.js" "hyperloop/android.app.FragmentManager.js" "hyperloop/android.app.FragmentTransaction.js" "hyperloop/android.app.LoaderManager$LoaderCallbacks.js" "hyperloop/android.app.LoaderManager.js" "hyperloop/android.app.PendingIntent$CanceledException.js" "hyperloop/android.app.PendingIntent$OnFinished.js" "hyperloop/android.app.PendingIntent.js" "hyperloop/android.app.SharedElementCallback$OnSharedElementsReadyListener.js" "hyperloop/android.app.SharedElementCallback.js" "hyperloop/android.app.TaskStackBuilder.js" "hyperloop/android.app.VoiceInteractor$AbortVoiceRequest.js" "hyperloop/android.app.VoiceInteractor$CommandRequest.js" "hyperloop/android.app.VoiceInteractor$CompleteVoiceRequest.js" "hyperloop/android.app.VoiceInteractor$ConfirmationRequest.js" "hyperloop/android.app.VoiceInteractor$PickOptionRequest$Option.js" "hyperloop/android.app.VoiceInteractor$PickOptionRequest.js" "hyperloop/android.app.VoiceInteractor$Prompt.js" "hyperloop/android.app.VoiceInteractor$Request.js" "hyperloop/android.app.VoiceInteractor.js" "hyperloop/android.app.assist.AssistContent.js" "hyperloop/android.app.assist.js" "hyperloop/android.app.js" "hyperloop/android.content.BroadcastReceiver$PendingResult.js" "hyperloop/android.content.BroadcastReceiver.js" "hyperloop/android.content.ClipData$Item.js" "hyperloop/android.content.ClipData.js" "hyperloop/android.content.ClipDescription.js" "hyperloop/android.content.ComponentCallbacks.js" "hyperloop/android.content.ComponentName.js" "hyperloop/android.content.ContentProvider$PipeDataWriter.js" "hyperloop/android.content.ContentProvider.js" "hyperloop/android.content.ContentProviderClient.js" "hyperloop/android.content.ContentResolver.js" "hyperloop/android.content.ContentValues.js" "hyperloop/android.content.Context.js" "hyperloop/android.content.ContextWrapper.js" "hyperloop/android.content.DialogInterface$OnCancelListener.js" "hyperloop/android.content.DialogInterface$OnClickListener.js" "hyperloop/android.content.DialogInterface$OnDismissListener.js" "hyperloop/android.content.DialogInterface$OnKeyListener.js" "hyperloop/android.content.DialogInterface$OnMultiChoiceClickListener.js" "hyperloop/android.content.DialogInterface$OnShowListener.js" "hyperloop/android.content.DialogInterface.js" "hyperloop/android.content.Intent$FilterComparison.js" "hyperloop/android.content.Intent$ShortcutIconResource.js" "hyperloop/android.content.Intent.js" "hyperloop/android.content.IntentFilter$AuthorityEntry.js" "hyperloop/android.content.IntentFilter$MalformedMimeTypeException.js" "hyperloop/android.content.IntentFilter.js" "hyperloop/android.content.IntentSender$OnFinished.js" "hyperloop/android.content.IntentSender$SendIntentException.js" "hyperloop/android.content.IntentSender.js" "hyperloop/android.content.Loader$ForceLoadContentObserver.js" "hyperloop/android.content.Loader$OnLoadCanceledListener.js" "hyperloop/android.content.Loader$OnLoadCompleteListener.js" "hyperloop/android.content.Loader.js" "hyperloop/android.content.ServiceConnection.js" "hyperloop/android.content.SharedPreferences$Editor.js" "hyperloop/android.content.SharedPreferences$OnSharedPreferenceChangeListener.js" "hyperloop/android.content.SharedPreferences.js" "hyperloop/android.content.SyncInfo.js" "hyperloop/android.content.SyncRequest$Builder.js" "hyperloop/android.content.SyncRequest.js" "hyperloop/android.content.SyncStatusObserver.js" "hyperloop/android.content.js" "hyperloop/android.content.pm.ActivityInfo.js" "hyperloop/android.content.pm.ApplicationInfo$DisplayNameComparator.js" "hyperloop/android.content.pm.ApplicationInfo.js" "hyperloop/android.content.pm.ComponentInfo.js" "hyperloop/android.content.pm.InstrumentationInfo.js" "hyperloop/android.content.pm.PackageInfo.js" "hyperloop/android.content.pm.PackageInstaller$Session.js" "hyperloop/android.content.pm.PackageInstaller$SessionCallback.js" "hyperloop/android.content.pm.PackageInstaller$SessionInfo.js" "hyperloop/android.content.pm.PackageInstaller$SessionParams.js" "hyperloop/android.content.pm.PackageInstaller.js" "hyperloop/android.content.pm.PackageItemInfo$DisplayNameComparator.js" "hyperloop/android.content.pm.PackageItemInfo.js" "hyperloop/android.content.pm.PackageManager$NameNotFoundException.js" "hyperloop/android.content.pm.PackageManager.js" "hyperloop/android.content.pm.PermissionGroupInfo.js" "hyperloop/android.content.pm.PermissionInfo.js" "hyperloop/android.content.pm.ProviderInfo.js" "hyperloop/android.content.pm.ResolveInfo$DisplayNameComparator.js" "hyperloop/android.content.pm.ResolveInfo.js" "hyperloop/android.content.pm.ServiceInfo.js" "hyperloop/android.content.pm.js" "hyperloop/android.content.res.AssetFileDescriptor$AutoCloseInputStream.js" "hyperloop/android.content.res.AssetFileDescriptor$AutoCloseOutputStream.js" "hyperloop/android.content.res.AssetFileDescriptor.js" "hyperloop/android.content.res.AssetManager$AssetInputStream.js" "hyperloop/android.content.res.AssetManager.js" "hyperloop/android.content.res.ColorStateList.js" "hyperloop/android.content.res.Configuration.js" "hyperloop/android.content.res.Resources$NotFoundException.js" "hyperloop/android.content.res.Resources$Theme.js" "hyperloop/android.content.res.Resources.js" "hyperloop/android.content.res.TypedArray.js" "hyperloop/android.content.res.XmlResourceParser.js" "hyperloop/android.content.res.js" "hyperloop/android.database.CharArrayBuffer.js" "hyperloop/android.database.ContentObserver.js" "hyperloop/android.database.Cursor.js" "hyperloop/android.database.DataSetObserver.js" "hyperloop/android.database.DatabaseErrorHandler.js" "hyperloop/android.database.js" "hyperloop/android.database.sqlite.SQLiteClosable.js" "hyperloop/android.database.sqlite.SQLiteCursorDriver.js" "hyperloop/android.database.sqlite.SQLiteDatabase$CursorFactory.js" "hyperloop/android.database.sqlite.SQLiteDatabase.js" "hyperloop/android.database.sqlite.SQLiteProgram.js" "hyperloop/android.database.sqlite.SQLiteQuery.js" "hyperloop/android.database.sqlite.SQLiteStatement.js" "hyperloop/android.database.sqlite.SQLiteTransactionListener.js" "hyperloop/android.database.sqlite.js" "hyperloop/android.graphics.Bitmap$CompressFormat.js" "hyperloop/android.graphics.Bitmap$Config.js" "hyperloop/android.graphics.Bitmap.js" "hyperloop/android.graphics.BitmapFactory$Options.js" "hyperloop/android.graphics.BitmapFactory.js" "hyperloop/android.graphics.Canvas$EdgeType.js" "hyperloop/android.graphics.Canvas$VertexMode.js" "hyperloop/android.graphics.Canvas.js" "hyperloop/android.graphics.Color.js" "hyperloop/android.graphics.ColorFilter.js" "hyperloop/android.graphics.DrawFilter.js" "hyperloop/android.graphics.MaskFilter.js" "hyperloop/android.graphics.Matrix$ScaleToFit.js" "hyperloop/android.graphics.Matrix.js" "hyperloop/android.graphics.Movie.js" "hyperloop/android.graphics.Outline.js" "hyperloop/android.graphics.Paint$Align.js" "hyperloop/android.graphics.Paint$Cap.js" "hyperloop/android.graphics.Paint$FontMetrics.js" "hyperloop/android.graphics.Paint$FontMetricsInt.js" "hyperloop/android.graphics.Paint$Join.js" "hyperloop/android.graphics.Paint$Style.js" "hyperloop/android.graphics.Paint.js" "hyperloop/android.graphics.Path$Direction.js" "hyperloop/android.graphics.Path$FillType.js" "hyperloop/android.graphics.Path$Op.js" "hyperloop/android.graphics.Path.js" "hyperloop/android.graphics.PathEffect.js" "hyperloop/android.graphics.Picture.js" "hyperloop/android.graphics.Point.js" "hyperloop/android.graphics.PorterDuff$Mode.js" "hyperloop/android.graphics.PorterDuff.js" "hyperloop/android.graphics.Rasterizer.js" "hyperloop/android.graphics.Rect.js" "hyperloop/android.graphics.RectF.js" "hyperloop/android.graphics.Region$Op.js" "hyperloop/android.graphics.Region.js" "hyperloop/android.graphics.Shader$TileMode.js" "hyperloop/android.graphics.Shader.js" "hyperloop/android.graphics.SurfaceTexture$OnFrameAvailableListener.js" "hyperloop/android.graphics.SurfaceTexture$OutOfResourcesException.js" "hyperloop/android.graphics.SurfaceTexture.js" "hyperloop/android.graphics.Typeface.js" "hyperloop/android.graphics.Xfermode.js" "hyperloop/android.graphics.drawable.Drawable$Callback.js" "hyperloop/android.graphics.drawable.Drawable$ConstantState.js" "hyperloop/android.graphics.drawable.Drawable.js" "hyperloop/android.graphics.drawable.DrawableWrapper.js" "hyperloop/android.graphics.drawable.InsetDrawable.js" "hyperloop/android.graphics.drawable.ShapeDrawable$ShaderFactory.js" "hyperloop/android.graphics.drawable.ShapeDrawable.js" "hyperloop/android.graphics.drawable.js" "hyperloop/android.graphics.drawable.shapes.OvalShape.js" "hyperloop/android.graphics.drawable.shapes.RectShape.js" "hyperloop/android.graphics.drawable.shapes.Shape.js" "hyperloop/android.graphics.drawable.shapes.js" "hyperloop/android.graphics.js" "hyperloop/android.js" "hyperloop/android.media.AudioAttributes$Builder.js" "hyperloop/android.media.AudioAttributes.js" "hyperloop/android.media.MediaDescription$Builder.js" "hyperloop/android.media.MediaDescription.js" "hyperloop/android.media.MediaMetadata$Builder.js" "hyperloop/android.media.MediaMetadata.js" "hyperloop/android.media.Rating.js" "hyperloop/android.media.js" "hyperloop/android.media.session.MediaController$Callback.js" "hyperloop/android.media.session.MediaController$PlaybackInfo.js" "hyperloop/android.media.session.MediaController$TransportControls.js" "hyperloop/android.media.session.MediaController.js" "hyperloop/android.media.session.MediaSession$Token.js" "hyperloop/android.media.session.MediaSession.js" "hyperloop/android.media.session.PlaybackState$Builder.js" "hyperloop/android.media.session.PlaybackState$CustomAction$Builder.js" "hyperloop/android.media.session.PlaybackState$CustomAction.js" "hyperloop/android.media.session.PlaybackState.js" "hyperloop/android.media.session.js" "hyperloop/android.net.Uri$Builder.js" "hyperloop/android.net.Uri.js" "hyperloop/android.net.js" "hyperloop/android.os.BaseBundle.js" "hyperloop/android.os.Bundle.js" "hyperloop/android.os.CancellationSignal$OnCancelListener.js" "hyperloop/android.os.CancellationSignal.js" "hyperloop/android.os.Handler$Callback.js" "hyperloop/android.os.Handler.js" "hyperloop/android.os.IBinder$DeathRecipient.js" "hyperloop/android.os.IBinder.js" "hyperloop/android.os.IInterface.js" "hyperloop/android.os.Looper.js" "hyperloop/android.os.Message.js" "hyperloop/android.os.MessageQueue$IdleHandler.js" "hyperloop/android.os.MessageQueue$OnFileDescriptorEventListener.js" "hyperloop/android.os.MessageQueue.js" "hyperloop/android.os.Messenger.js" "hyperloop/android.os.Parcel.js" "hyperloop/android.os.ParcelFileDescriptor$AutoCloseInputStream.js" "hyperloop/android.os.ParcelFileDescriptor$AutoCloseOutputStream.js" "hyperloop/android.os.ParcelFileDescriptor$FileDescriptorDetachedException.js" "hyperloop/android.os.ParcelFileDescriptor$OnCloseListener.js" "hyperloop/android.os.ParcelFileDescriptor.js" "hyperloop/android.os.Parcelable$ClassLoaderCreator.js" "hyperloop/android.os.Parcelable$Creator.js" "hyperloop/android.os.Parcelable.js" "hyperloop/android.os.PatternMatcher.js" "hyperloop/android.os.PersistableBundle.js" "hyperloop/android.os.ResultReceiver.js" "hyperloop/android.os.UserHandle.js" "hyperloop/android.os.Vibrator.js" "hyperloop/android.os.js" "hyperloop/android.transition.PathMotion.js" "hyperloop/android.transition.Scene.js" "hyperloop/android.transition.Transition$EpicenterCallback.js" "hyperloop/android.transition.Transition$TransitionListener.js" "hyperloop/android.transition.Transition.js" "hyperloop/android.transition.TransitionManager.js" "hyperloop/android.transition.TransitionPropagation.js" "hyperloop/android.transition.TransitionValues.js" "hyperloop/android.transition.js" "hyperloop/android.util.AttributeSet.js" "hyperloop/android.util.DisplayMetrics.js" "hyperloop/android.util.Printer.js" "hyperloop/android.util.Property.js" "hyperloop/android.util.Size.js" "hyperloop/android.util.SizeF.js" "hyperloop/android.util.SparseArray.js" "hyperloop/android.util.SparseBooleanArray.js" "hyperloop/android.util.TypedValue.js" "hyperloop/android.util.js" "hyperloop/android.view.ActionMode$Callback.js" "hyperloop/android.view.ActionMode$Callback2.js" "hyperloop/android.view.ActionMode.js" "hyperloop/android.view.ActionProvider$VisibilityListener.js" "hyperloop/android.view.ActionProvider.js" "hyperloop/android.view.ContextMenu$ContextMenuInfo.js" "hyperloop/android.view.ContextMenu.js" "hyperloop/android.view.ContextThemeWrapper.js" "hyperloop/android.view.Display$Mode.js" "hyperloop/android.view.Display.js" "hyperloop/android.view.DragEvent.js" "hyperloop/android.view.Gravity.js" "hyperloop/android.view.InputDevice$MotionRange.js" "hyperloop/android.view.InputDevice.js" "hyperloop/android.view.InputEvent.js" "hyperloop/android.view.InputQueue$Callback.js" "hyperloop/android.view.InputQueue.js" "hyperloop/android.view.KeyCharacterMap$KeyData.js" "hyperloop/android.view.KeyCharacterMap$UnavailableException.js" "hyperloop/android.view.KeyCharacterMap.js" "hyperloop/android.view.KeyEvent$Callback.js" "hyperloop/android.view.KeyEvent$DispatcherState.js" "hyperloop/android.view.KeyEvent.js" "hyperloop/android.view.LayoutInflater$Factory.js" "hyperloop/android.view.LayoutInflater$Factory2.js" "hyperloop/android.view.LayoutInflater$Filter.js" "hyperloop/android.view.LayoutInflater.js" "hyperloop/android.view.Menu.js" "hyperloop/android.view.MenuInflater.js" "hyperloop/android.view.MenuItem$OnActionExpandListener.js" "hyperloop/android.view.MenuItem$OnMenuItemClickListener.js" "hyperloop/android.view.MenuItem.js" "hyperloop/android.view.MotionEvent$PointerCoords.js" "hyperloop/android.view.MotionEvent$PointerProperties.js" "hyperloop/android.view.MotionEvent.js" "hyperloop/android.view.SearchEvent.js" "hyperloop/android.view.SubMenu.js" "hyperloop/android.view.Surface$OutOfResourcesException.js" "hyperloop/android.view.Surface.js" "hyperloop/android.view.SurfaceHolder$BadSurfaceTypeException.js" "hyperloop/android.view.SurfaceHolder$Callback.js" "hyperloop/android.view.SurfaceHolder$Callback2.js" "hyperloop/android.view.SurfaceHolder.js" "hyperloop/android.view.TouchDelegate.js" "hyperloop/android.view.View$AccessibilityDelegate.js" "hyperloop/android.view.View$BaseSavedState.js" "hyperloop/android.view.View$DragShadowBuilder.js" "hyperloop/android.view.View$MeasureSpec.js" "hyperloop/android.view.View$OnApplyWindowInsetsListener.js" "hyperloop/android.view.View$OnAttachStateChangeListener.js" "hyperloop/android.view.View$OnClickListener.js" "hyperloop/android.view.View$OnContextClickListener.js" "hyperloop/android.view.View$OnCreateContextMenuListener.js" "hyperloop/android.view.View$OnDragListener.js" "hyperloop/android.view.View$OnFocusChangeListener.js" "hyperloop/android.view.View$OnGenericMotionListener.js" "hyperloop/android.view.View$OnHoverListener.js" "hyperloop/android.view.View$OnKeyListener.js" "hyperloop/android.view.View$OnLayoutChangeListener.js" "hyperloop/android.view.View$OnLongClickListener.js" "hyperloop/android.view.View$OnScrollChangeListener.js" "hyperloop/android.view.View$OnSystemUiVisibilityChangeListener.js" "hyperloop/android.view.View$OnTouchListener.js" "hyperloop/android.view.View.js" "hyperloop/android.view.ViewGroup$LayoutParams.js" "hyperloop/android.view.ViewGroup$MarginLayoutParams.js" "hyperloop/android.view.ViewGroup$OnHierarchyChangeListener.js" "hyperloop/android.view.ViewGroup.js" "hyperloop/android.view.ViewGroupOverlay.js" "hyperloop/android.view.ViewOutlineProvider.js" "hyperloop/android.view.ViewOverlay.js" "hyperloop/android.view.ViewParent.js" "hyperloop/android.view.ViewPropertyAnimator.js" "hyperloop/android.view.ViewStructure.js" "hyperloop/android.view.ViewTreeObserver$OnDrawListener.js" "hyperloop/android.view.ViewTreeObserver$OnGlobalFocusChangeListener.js" "hyperloop/android.view.ViewTreeObserver$OnGlobalLayoutListener.js" "hyperloop/android.view.ViewTreeObserver$OnPreDrawListener.js" "hyperloop/android.view.ViewTreeObserver$OnScrollChangedListener.js" "hyperloop/android.view.ViewTreeObserver$OnTouchModeChangeListener.js" "hyperloop/android.view.ViewTreeObserver$OnWindowAttachListener.js" "hyperloop/android.view.ViewTreeObserver$OnWindowFocusChangeListener.js" "hyperloop/android.view.ViewTreeObserver.js" "hyperloop/android.view.Window$Callback.js" "hyperloop/android.view.Window.js" "hyperloop/android.view.WindowId$FocusObserver.js" "hyperloop/android.view.WindowId.js" "hyperloop/android.view.WindowInsets.js" "hyperloop/android.view.WindowManager$BadTokenException.js" "hyperloop/android.view.WindowManager$InvalidDisplayException.js" "hyperloop/android.view.WindowManager$LayoutParams.js" "hyperloop/android.view.WindowManager.js" "hyperloop/android.view.accessibility.AccessibilityEvent.js" "hyperloop/android.view.accessibility.AccessibilityNodeInfo$AccessibilityAction.js" "hyperloop/android.view.accessibility.AccessibilityNodeInfo$CollectionInfo.js" "hyperloop/android.view.accessibility.AccessibilityNodeInfo$CollectionItemInfo.js" "hyperloop/android.view.accessibility.AccessibilityNodeInfo$RangeInfo.js" "hyperloop/android.view.accessibility.AccessibilityNodeInfo.js" "hyperloop/android.view.accessibility.AccessibilityNodeProvider.js" "hyperloop/android.view.accessibility.AccessibilityRecord.js" "hyperloop/android.view.accessibility.AccessibilityWindowInfo.js" "hyperloop/android.view.accessibility.js" "hyperloop/android.view.animation.Animation$AnimationListener.js" "hyperloop/android.view.animation.Animation$Description.js" "hyperloop/android.view.animation.Animation.js" "hyperloop/android.view.animation.Interpolator.js" "hyperloop/android.view.animation.LayoutAnimationController$AnimationParameters.js" "hyperloop/android.view.animation.LayoutAnimationController.js" "hyperloop/android.view.animation.Transformation.js" "hyperloop/android.view.animation.js" "hyperloop/android.view.inputmethod.CompletionInfo.js" "hyperloop/android.view.inputmethod.CorrectionInfo.js" "hyperloop/android.view.inputmethod.EditorInfo.js" "hyperloop/android.view.inputmethod.ExtractedText.js" "hyperloop/android.view.inputmethod.ExtractedTextRequest.js" "hyperloop/android.view.inputmethod.InputConnection.js" "hyperloop/android.view.inputmethod.js" "hyperloop/android.view.js" "hyperloop/android.widget.FrameLayout$LayoutParams.js" "hyperloop/android.widget.FrameLayout.js" "hyperloop/android.widget.SpinnerAdapter.js" "hyperloop/android.widget.Toolbar$LayoutParams.js" "hyperloop/android.widget.Toolbar$OnMenuItemClickListener.js" "hyperloop/android.widget.Toolbar.js" "hyperloop/android.widget.js" "hyperloop/com.js" "hyperloop/com.prolificinteractive.js" "hyperloop/com.prolificinteractive.materialcalendarview.CalendarDay.js" "hyperloop/com.prolificinteractive.materialcalendarview.CalendarMode.js" "hyperloop/com.prolificinteractive.materialcalendarview.DayViewDecorator.js" "hyperloop/com.prolificinteractive.materialcalendarview.DayViewFacade.js" "hyperloop/com.prolificinteractive.materialcalendarview.MaterialCalendarView$LayoutParams.js" "hyperloop/com.prolificinteractive.materialcalendarview.MaterialCalendarView$SavedState.js" "hyperloop/com.prolificinteractive.materialcalendarview.MaterialCalendarView$SelectionMode.js" "hyperloop/com.prolificinteractive.materialcalendarview.MaterialCalendarView$ShowOtherDates.js" "hyperloop/com.prolificinteractive.materialcalendarview.MaterialCalendarView$State.js" "hyperloop/com.prolificinteractive.materialcalendarview.MaterialCalendarView$StateBuilder.js" "hyperloop/com.prolificinteractive.materialcalendarview.MaterialCalendarView.js" "hyperloop/com.prolificinteractive.materialcalendarview.OnDateSelectedListener.js" "hyperloop/com.prolificinteractive.materialcalendarview.OnMonthChangedListener.js" "hyperloop/com.prolificinteractive.materialcalendarview.OnRangeSelectedListener.js" "hyperloop/com.prolificinteractive.materialcalendarview.format.DayFormatter.js" "hyperloop/com.prolificinteractive.materialcalendarview.format.TitleFormatter.js" "hyperloop/com.prolificinteractive.materialcalendarview.format.WeekDayFormatter.js" "hyperloop/com.prolificinteractive.materialcalendarview.format.js" "hyperloop/com.prolificinteractive.materialcalendarview.js" "hyperloop/com.prolificinteractive.materialcalendarview.spans.DotSpan.js" "hyperloop/com.prolificinteractive.materialcalendarview.spans.js" "hyperloop/java.io.File.js" "hyperloop/java.io.FileDescriptor.js" "hyperloop/java.io.FileFilter.js" "hyperloop/java.io.FileInputStream.js" "hyperloop/java.io.FileOutputStream.js" "hyperloop/java.io.FilenameFilter.js" "hyperloop/java.io.FilterOutputStream.js" "hyperloop/java.io.IOException.js" "hyperloop/java.io.InputStream.js" "hyperloop/java.io.OutputStream.js" "hyperloop/java.io.PrintStream.js" "hyperloop/java.io.PrintWriter.js" "hyperloop/java.io.Reader.js" "hyperloop/java.io.Serializable.js" "hyperloop/java.io.Writer.js" "hyperloop/java.io.js" "hyperloop/java.js" "hyperloop/java.lang.AbstractStringBuilder.js" "hyperloop/java.lang.Appendable.js" "hyperloop/java.lang.Boolean.js" "hyperloop/java.lang.Byte.js" "hyperloop/java.lang.Class.js" "hyperloop/java.lang.ClassLoader.js" "hyperloop/java.lang.Double.js" "hyperloop/java.lang.Enum.js" "hyperloop/java.lang.Exception.js" "hyperloop/java.lang.Float.js" "hyperloop/java.lang.Integer.js" "hyperloop/java.lang.Iterable.js" "hyperloop/java.lang.Long.js" "hyperloop/java.lang.Number.js" "hyperloop/java.lang.Object.js" "hyperloop/java.lang.Package.js" "hyperloop/java.lang.Runnable.js" "hyperloop/java.lang.Short.js" "hyperloop/java.lang.String.js" "hyperloop/java.lang.StringBuffer.js" "hyperloop/java.lang.StringBuilder.js" "hyperloop/java.lang.Thread$State.js" "hyperloop/java.lang.Thread$UncaughtExceptionHandler.js" "hyperloop/java.lang.Thread.js" "hyperloop/java.lang.ThreadGroup.js" "hyperloop/java.lang.Throwable$PrintStreamOrWriter.js" "hyperloop/java.lang.Throwable.js" "hyperloop/java.lang.annotation.Annotation.js" "hyperloop/java.lang.annotation.js" "hyperloop/java.lang.js" "hyperloop/java.lang.reflect.AccessibleObject.js" "hyperloop/java.lang.reflect.AnnotatedType.js" "hyperloop/java.lang.reflect.Constructor.js" "hyperloop/java.lang.reflect.Executable.js" "hyperloop/java.lang.reflect.Field.js" "hyperloop/java.lang.reflect.Method.js" "hyperloop/java.lang.reflect.Type.js" "hyperloop/java.lang.reflect.js" "hyperloop/java.net.ContentHandler.js" "hyperloop/java.net.ContentHandlerFactory.js" "hyperloop/java.net.DatagramPacket.js" "hyperloop/java.net.DatagramSocket.js" "hyperloop/java.net.DatagramSocketImpl.js" "hyperloop/java.net.DatagramSocketImplFactory.js" "hyperloop/java.net.FileNameMap.js" "hyperloop/java.net.InetAddress.js" "hyperloop/java.net.NetworkInterface.js" "hyperloop/java.net.ProtocolFamily.js" "hyperloop/java.net.Proxy$Type.js" "hyperloop/java.net.Proxy.js" "hyperloop/java.net.ServerSocket.js" "hyperloop/java.net.Socket.js" "hyperloop/java.net.SocketAddress.js" "hyperloop/java.net.SocketImpl.js" "hyperloop/java.net.SocketImplFactory.js" "hyperloop/java.net.SocketOption.js" "hyperloop/java.net.URI.js" "hyperloop/java.net.URL.js" "hyperloop/java.net.URLConnection.js" "hyperloop/java.net.URLStreamHandler.js" "hyperloop/java.net.URLStreamHandlerFactory.js" "hyperloop/java.net.js" "hyperloop/java.nio.Buffer.js" "hyperloop/java.nio.ByteBuffer.js" "hyperloop/java.nio.ByteOrder.js" "hyperloop/java.nio.DoubleBuffer.js" "hyperloop/java.nio.FloatBuffer.js" "hyperloop/java.nio.IntBuffer.js" "hyperloop/java.nio.LongBuffer.js" "hyperloop/java.nio.MappedByteBuffer.js" "hyperloop/java.nio.ShortBuffer.js" "hyperloop/java.nio.channels.AsynchronousFileChannel.js" "hyperloop/java.nio.channels.Channel.js" "hyperloop/java.nio.channels.CompletionHandler.js" "hyperloop/java.nio.channels.DatagramChannel.js" "hyperloop/java.nio.channels.FileChannel$MapMode.js" "hyperloop/java.nio.channels.FileChannel.js" "hyperloop/java.nio.channels.FileLock.js" "hyperloop/java.nio.channels.NetworkChannel.js" "hyperloop/java.nio.channels.Pipe$SinkChannel.js" "hyperloop/java.nio.channels.Pipe$SourceChannel.js" "hyperloop/java.nio.channels.Pipe.js" "hyperloop/java.nio.channels.ReadableByteChannel.js" "hyperloop/java.nio.channels.SeekableByteChannel.js" "hyperloop/java.nio.channels.SelectableChannel.js" "hyperloop/java.nio.channels.SelectionKey.js" "hyperloop/java.nio.channels.Selector.js" "hyperloop/java.nio.channels.ServerSocketChannel.js" "hyperloop/java.nio.channels.SocketChannel.js" "hyperloop/java.nio.channels.WritableByteChannel.js" "hyperloop/java.nio.channels.js" "hyperloop/java.nio.channels.spi.AbstractInterruptibleChannel.js" ....
{quote}
(I had to remove some of the output because of the max limit of JIRA)
* Test project: https://github.com/m1ga/Ti.CalendarView
* Hyperloop 2.1.1
Compile time at the end: Project built successfully in 4m 35s 88ms
Same thing for me: [INFO] Project built successfully in 4m 56s 522ms to build the hyperloop-samples app. Please give us an hint on how to reduce this huge amount of time!
Same here: [INFO] : Project built successfully in 4m 43s 971ms Please provide a work around or something.
Hey guys, quick heads up here! We are working on a fix already, although the ticket state was not updated, yet. It will part of Hyperloop 2.2.0 next month and include a completely rewritten file-watcher for improved compile team. Please hold tight! :-)
what kind of improvement are you seeing on this? will it be down to reasonable build times with hyperloop?
This is unbearable...when will the fix be out? It's taking over 5 minutes for us to build on Android now.
Hey Guys, just a quick update on this and a few words about the expected performance. Since this is a major change to the internal Android Hyperloop build, we are currently writing some extended tests for this to make sure everything works as expected. With this fix, Hyperloop will also no longer copy any generated wrapper files into the
Resources
directory of your app. To get an idea about the performance increase here are some numbers from my machine with the [hyperloop-examples](https://github.com/appcelerator/hyperloop-examples) app: Hyperloop 2.1.3: 2m 16s 983ms Hyperloop 2.2.0 (first build): Total 38s 502ms, Hyperloop: 6s 444ms Hyperloop 2.2.0 (subsequent build, no changes): Total: 33s 373ms, Hyperloop: 2s 337ms Hyperloop 2.2.0 (subsequent build, new native types used): Total: 37s 61ms, Hyperloop: 4s 57ms Looking at the above numbers you can see the build is significantly faster now. The build time on subsequent builds heavily depends on the amount of new native types you use compared to the previous build as this triggers the complete Hyperloop build pipeline for the new set of types. The current release estimate for Hyperloop 2.2.0 with this improvement is mid to late September, so hang in there just a little longer!(y) nice! That will make it useful, looking forward to the next release
Make it happen asap! ;-)
PR (master): https://github.com/appcelerator/hyperloop.next/pull/205
Since this is already marked "Resolved", is there a timeframe for the Hyperloop 2.2 release?
This week!
Verified the fix. Build time are lower now with 2.2.0RC2 than with 2.1.3. Closing. Studio Ver: 4.10.0.201709271713 SDK Ver: 6.2.2.GA OS Ver: 10.12.3 Xcode Ver: Xcode 8.3.3 Appc NPM: 4.2.9 Appc CLI: 6.2.4 Ti CLI Ver: 5.0.14 Alloy Ver: 1.9.14 Node Ver: 7.10.1 Java Ver: 1.8.0_101 Devices: ⇨ google Pixel --- Android 7.1.1 Hyperloop: 2.2.0RC2
We would really love to see releases more frequently for Hyperloop. This is a showstopper bug!
We need more releases for compile time in general. Titanium development is 90% waiting and 10% coding. Liveview doesnt work without studio (and nobody uses studio because its sluggish) so thats not a solution either. Compile time should be a MAX of 20 seconds for either platform. Not *[INFO] Project built successfully in 3m 43s 779ms*
I'm on an i7/16gb/256GBSSD Mac. 5-7+ minutes build time. I don't know how to maintain apps anymore with such crazy build times.
Same here...we are on the latest Ti sdk and Hyperloop, but still seeing 4+ minute build times on Android. It's completely unacceptable. And our machines are the most expensive mac book pros you can buy.
To confirm: You are sure to use Hyperloop 2.2.x (2.2.2 is the latest)? Ensure by specifying the
version="2.2.2"
node in your tiapp.xml. Thx!Yes and we are seeing build times of ~3 minutes on Android without including Hyperloop. It spends the majority of the time on the "Processing javascript files" stage. This is happening with our clients that have medium sized Alloy projects with 100+ controllers.
I concur, build times are outrageous. Just dumping some ideas here to improve compile time: - only recompile files that have changed - stop minifying for dev builds I know it can be done, in fact I have seen acceptable compiletimes in the past with Liveview. Liveview needs to work outside of the studio context though using a simple "--liveview" parameter for "appc ti build". In fact, it should be enabled by default. Compile-time should really be sub 20s, it might even be fair to demand < 5s.
As [~btknorr] and others already noticed, this is only partly related to Hyperloop. In fact, Hyperloop now makes use of heavy caching on all of its build steps and only acts on changed files. This should really be noticeable on incremental builds. The remaining issue is the unnecessary processing of JS files which indeed takes a long time on larger projects. We already identified a few bugs in our build verification on Android which we are currently addressing in CLI-1278 and TIMOB-25508. If some of you could provide complete trace logs of your larger project builds and attach them to TIMOB-25240 that would also help a lot. Thanks guys!
I added my trace log to the ticket like you suggested...hopefully it will help. Thanks!