我有一个Android应用程序,在启动时显示白色屏幕2秒.我的其他应用程序不这样做,但这个应用程序.我还实现了一个启动画面,希望能解决这个问题.我应该增加闪屏的睡眠时间吗?谢谢.
我有一个网站项目我已经转换为.NET 4.5.我想用AuthConfig,我已经看到添加到App_Start目录.几个问题.
是App_Start目录仅适用于Web应用程序项目?当我尝试添加现有的asp.net文件夹,我不认为这是要添加的选项.
其次,如果是这样的话,我可以在我的网站项目中的任何地方使用AuthConfig文件吗?
我被要求减少iOS应用程序的启动时间.我对平台/工具一般非常熟悉,但我之前没有专注于应用程序启动时间.我想知道是否有已知的攻击这个问题的模式?
我意识到我可以简单地测量从main()到完成application:didFinishLaunchingWithOptions:(包括任何后台加载任务)所需的时间,但同样,我希望可能有更标准化的方法来执行此操作.
任何建议将不胜感激!
-M
我有一个用VB.NET for Framework 4.5编写的WinForms应用程序.我注意到应用程序的启动时间非常长(我编写的其他应用程序在启动时几乎立即启动更多工作,此应用程序需要> 5秒)启动时间在多次启动后不会改变,所以我猜在第一次启动应用程序时,不是未缓存的CLR代码的情况.
我在启动时写下了一些测试:
Module modMain
Public MyLog As System.Text.StringBuilder
<STAThread>
Public Sub Main()
MyLog = New System.Text.StringBuilder
Application.EnableVisualStyles()
Application.SetCompatibleTextRenderingDefault(False)
MyLog.AppendLine("Before run: " & Date.Now.ToString & "," & Date.Now.Millisecond.ToString)
Application.Run(frmMain)
End Sub
End Module
Run Code Online (Sandbox Code Playgroud)
Sub Main()是应用程序的入口点.它运行frmMain,我控制的第一个真正的东西是Sub InitializeComponent(),由设计师生成:
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
MyLog.AppendLine("Init Start: " & Date.Now.ToString & "," & Date.Now.Millisecond.ToString)
'All the control initializations
MyLog.AppendLine("Init End: " & Date.Now.ToString & "," & Date.Now.Millisecond.ToString)
End Sub
Run Code Online (Sandbox Code Playgroud)
最后我到达了这个Form.Load活动
Private Sub frmMain_Load(sender As …Run Code Online (Sandbox Code Playgroud) 作为 Jetpack 的一部分,现在有一个库来处理应用程序启动。具体来说,您可以为任何依赖项(显然是使用 ContentProvider 进行初始化的依赖项)实现组件初始化程序,以加快应用程序启动过程。
我的问题是我应该如何知道我的哪些依赖项值得拥有自己的组件初始值设定项?我是否需要猜测,例如,WorkManager 使用 ContentProvider 并需要自己的组件初始值设定项,而不同的依赖项则不需要?
谢谢。
android startup app-startup android-contentprovider android-jetpack
我有一个WPF数据库查看器应用程序:它是一个简单的主窗口,包含一个用户控件,数据网格显示从SQLite数据库中提取的数据.
问题是这个应用程序需要6秒才能启动,直到它可用.
我尝试在主窗口的构造函数中构建用户控件(并执行所有数据加载):
启动屏幕将以这种方式显示5s,然后是1s的空主窗口,直到应用程序准备好使用.
用户表示,在某些(视觉上)发生之前需要很长时间.
然后我将用户控件创建(和数据加载)移动到主窗口的Loaded事件处理程序中:启动屏幕将显示3s,然后是3s的空主窗口,直到应用程序准备就绪.
用户说它"更好",但不喜欢半完成主窗口显示处于禁用状态这么久的事实.
是否有一些关于感知应用程序加载时间的一般建议,还是有关于如何改进这种情况的任何其他建议?
我相信理想情况下主窗口会尽可能快地显示,还有一些沙漏或微调器,直到数据加载完毕.但是我不能只是将用户控件创建移动到后台工作程序中,因为这将在错误的线程上完成.
有人对这个问题有什么建议吗?
编辑:
请注意,我刚刚分配了一个LINQ-to-EF查询作为网格数据源.
一种可能的改进可能是将这些数据加载到后台的数据表中,并仅在加载后分配它...
Edit2:我正在使用带有System.Data.SQLite和EF4的.net 4来加载数据.有大约4000行和30列.
我们正在 PCL 上开发跨平台应用程序,但目前我们仅使用 android 设备进行测试。
我们担心的是,启动应用程序需要大约 6 到 8 秒(取决于我们测试的设备),这非常慢。
放置几个断点后,我们看到时间消耗相当均匀。
我们确实注意到这个特定部分花费了更长的时间:
base.OnCreate(bundle); global::Xamarin.Forms.Forms.Init(this, bundle); Page mainPage = new LogScreen();(创建主页面,然后将其设置为主导航页面)。cross-platform app-startup xamarin.android xamarin xamarin.forms
自从我几年前开始编写经典的ASP 12(左右)以来,我已经完成了这一切,我从来没有找到一个很好的解决方案,因为ASP和ASP.NET的架构一直是不良做法的沼泽,魔术共享单身,等我最大的问题是用HttpApplication其非事件的事件(对象Application_Start,Application_End等等).
如果你想在HTTP应用程序的整个生命周期内做一次Application_Start事情,那么这是显而易见的.对?不完全是.首先,这本身不是一个事件,它是一个神奇的命名约定,如果遵循这个约定,会导致该方法在IIS创建的每个AppDomain上调用一次.
除了魔术命名惯例是一种可怕的做法,我开始认为这可能是Start在HttpApplication对象上不存在事件的原因.所以我已经尝试过确实存在的事件,例如Init.嗯,这也不是一个真正的事件,它是一个可以覆盖的方法,这是下一个最好的事情.
似乎该Init()方法是针对HttpApplication对象的每个实例化调用的,每个AppDomain发生的次数不止一次.这意味着我不妨将我的启动逻辑放在HttpApplication对象的构造函数中.
现在我的问题是,为什么我不应该将我的启动逻辑放在构造函数中?为什么甚至Init()存在,我需要关心什么Application_Start?如果我这样做,任何人都可以解释为什么HttpApplication对象中的这个伪事件没有适当的事件或可覆盖的方法?
任何人都可以向我解释为什么在一个典型的ASP.NET应用程序中,我HttpApplication创建了8个实例(这会导致构造函数Init运行多次,当然;这可以通过锁定和调用的共享静态布尔值来缓解initialized)当我的应用程序只有一个AppDomain?
我正在尝试描述我的应用程序的启动时间,所以我写了一个小的C#程序,它将使用Process.Start()方法启动我的应用程序,并使用秒表计时.
当我尝试自己启动应用程序时(只需单击它),可能需要2-3秒.当我尝试使用我的测试程序启动应用程序时,需要8-10秒.启动时间始终不同.
知道为什么使用Process.Start启动可执行文件会影响启动时间吗?
需要从servlet上下文侦听器的contextInitialized()方法调用EJB服务.应用程序在JBOSS上运行,虽然上下文监听器工作正常,但我无法通过JNDI查找来访问EJB bean.
因为JBOSS中的Web部署发生在EJB bean与JNDI树绑定之前.如何克服这个?有没有办法尽早配置JNDI绑定,或者在EJB完全部署后再启动Web部署?
我已经把Thread.sleep()这个contextInitialized()方法中的服务调用之前放了,它在我的JBoss5.1.0 GA中运行正常,并且在同一版本的其他机器JBoss中同样没有用.
应用程序需要这个,因为我们希望从数据库加载一些主数据并使其在Web层中可用(缓存类型).JBOSS startupmbean适合这个要求吗?如果是,我如何将数据提供给Web层?
如果有其他方法,请建议.