精华内容
下载资源
问答
  • 刚刚在测试是否tableau desktop...根据8.3版本里面使用时间驻留器进行破解的方法,在10.3里面居然不行了。https://buy.tableau.com/ 这个里面有在线购买,发现5个用户的server 版本一年只需要 35*5 *7 =1225 人民币哦。

    刚刚在测试是否tableau desktop可以破解一下,这个软件太好用了了。

    根据8.3版本里面使用时间驻留器进行破解的方法,在10.3里面居然不行了。

    https://buy.tableau.com/ 这个里面有在线购买,发现5个用户的server 版本一年只需要 35*5 *7 =1225 人民币哦。

    展开全文
  • Excel在.Net下驻留内存的解决方法

    千次阅读 2007-06-26 14:57:00
    http://www.chinahtml.com/programming/5/2007/aspnet-117487975112466.shtml这段时间在VS 2003 的WebForm 方式下对Excel 进行操作,遇到一个最为头疼的问题就是对Excel操作完毕后Excel不能够正常关闭,系统退出后,...
    出处:http://www.chinahtml.com/programming/5/2007/aspnet-117487975112466.shtml

    这段时间在VS 2003 的WebForm 方式下对Excel 进行操作,遇到一个最为头疼的问题就是对Excel操作完毕后Excel不能够正常关闭,系统退出后,Excel总是驻留在内存中。但是这段代码放到WinForm的程序中又没有问题。在网上进行了查找也没有找到有效可行的办法。经过无数次的尝试,终于解决如下:

      原来书写如下:

    以下是引用片段:
      private Excel.Application m_app;
      private Excel.Workbook m_workbook;
      this.m_app = new Excel.ApplicationClass();
      this.m_app.DisplayAlerts = false;
      this.m_workbook = this.m_app.Workbooks.Open(sFilePath, Missing.Value,
      Missing.Value, Missing.Value, Missing.Value,
      Missing.Value, Missing.Value, Missing.Value,
      Missing.Value, Missing.Value, Missing.Value,
      Missing.Value, Missing.Value, Missing.Value,
      Missing.Value );

      修改后如下:

    以下是引用片段:
      private Excel.Application m_app;
      private Excel.Workbooks m_workbooks;
      private Excel.Workbook m_workbook;
      this.m_app = new Excel.ApplicationClass();
      this.m_app.DisplayAlerts = false;
      m_workbooks = this.m_app.Workbooks;
      this.m_workbook = this.m_workbooks.Open(sFilePath, Missing.Value,
      Missing.Value, Missing.Value, Missing.Value,
      Missing.Value, Missing.Value, Missing.Value,
      Missing.Value, Missing.Value, Missing.Value,
      Missing.Value, Missing.Value, Missing.Value,
      Missing.Value );

      同样对Sheet的操作如下

      修改前如下:

    以下是引用片段:
      Excel._Worksheet worksheet1 = null;
      worksheet1 = (Excel._Worksheet) this.m_workbook.Worksheets.get_Item(sSheetName);
      修改后如下:
      Excel.Sheets sheets = null ;
      Excel._Worksheet worksheet1 = null;
      sheets = this.m_workbook.Worksheets;
      worksheet1 = (Excel._Worksheet) sheets.get_Item(sSheetName);

      发现区别了么?原来Workbooks,Worksheets这两个类没有被实例化就直接使用了,造成该类不能够被回收。最终造成Excel在内存的驻留。

      最终以如下方式释放。

    以下是引用片段:
      private void ReleaseAllRef(Object obj)
      {
      try
      {
      if (obj != null )
      {
      while (Marshal.ReleaseComObject(obj) > 1);
      }
      }
      finally
      {
      obj = null;
      }
      }
      private void Release()
      {
      if (m_app != null )
      {
      m_app.Quit() ;
      }
      ReleaseAllRef(m_workbook) ;
      m_workbook = null ;
      ReleaseAllRef(m_workbooks) ;
      m_workbooks = null ;
      ReleaseAllRef(m_app) ;
      m_app = null ;
      System.GC.Collect() ;
      }
       
    展开全文
  • 很多时候我们需要知道用户驻留在app内多长时间了。比如说我们要实现一个功能,当用户连续使用app20分钟以上时,增加其会员积分。  最先想到的可能是用timer来计时,其实并非如此。我们可以使用线程,其中的Thread....

        本文面向新手开发者。很多时候我们需要知道用户驻留在app内多长时间了。比如说我们要实现一个功能,当用户连续使用app20分钟以上时,增加其会员积分。

        最先想到的可能是用timer来计时,其实并非如此。我们可以使用线程,其中的Thread.sleep(1000);方法。为了不影响用户使用,我们还需要一个service,在后台来操作。

        以下是Service代码:

    public class TimerService extends Service {
    
        /**
         * 创建参数
         */
        boolean threadDisable;
        int count;
    
        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }
    
        @Override
        public void onCreate() {
            super.onCreate();
            /** 创建一个线程, 每秒计数器加1, 并在控制台进行Log输出 */
            new Thread(new Runnable() {
                @Override
                public void run() {
                    while (!threadDisable) {
                        try {
                            Thread.sleep(1000);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        count++;
                        Log.e("驻留时间:", count + "");
                        // 判断时间,这里默认的是2min
                        if (count == 2 * 60) {
                            //用戶持续使用app已达2min
                        }
                    }
                }
            }).start();
        }
    
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
            Log.e("onStart()","service的onstart()执行了");
            return super.onStartCommand(intent, flags, startId);
        }
    
        @Override
        public boolean onUnbind(Intent intent) {
            /** 服务停止时, 终止计数进程 */
            this.threadDisable = true;
            Log.e("onUnbind()","service的onUnbind()执行了");
            return super.onUnbind(intent);
        }
    
        @Override
        public void onDestroy() {
            super.onDestroy();
            Log.e("onDestroy()","service的onDestroy()执行了");
        }
    
    }

        一个项目中有很多页面,为了避免重复操作,我们需要创建一个BaseActivity,然后让其他页面来继承这个Activity。

        在这个BaseActivity中需要注意以下两点:

        1、在 onResume()启动service

        2、在 onStop() 中关闭service

        上面说到的启动service和关闭service用的分别是bindService()和unBindService()。至于为什么在onResume()和onStop()方法里面开启和关闭service,测试结果如下。


        首先说明一下为什么不在onDestroy()中关闭service,最主要的原因就是app使用过程中当用户按了Home键返回桌面,或者用户按了电源键关闭了屏幕,这种情况下我们不可能继续计时,但是Activity在短时间内不会(或者根本不会)调用onDestroy(),所以我决定在onStop中关闭service。由于项目中的Activity都继承了BaseActivity,所以不管之间怎么跳转都不会使service解绑。如果有特殊原因不能继承BaseActivity,如用到fragment需要继承FragmentActivirty等等,可以把BaseActivity中的代码拷贝到相应的Activity。

            以下是BaseActivity代码:

    public class AppLifeTimeActivity extends Activity {
    
        Intent intent;
        MyServiceConnection myServiceConnection;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_applifetime);
            intent = new Intent(AppLifeTimeActivity.this, TimerService.class);
            myServiceConnection = new MyServiceConnection();
        }
    
        @Override
        protected void onResume() {
            super.onResume();
            AppLifeTimeActivity.this.bindService(intent, myServiceConnection, Context.BIND_AUTO_CREATE);
            Log.e("onResume()", "注册监听,绑定服务");
        }
    
        @Override
        protected void onPause() {
            super.onPause();
            Log.e("onPause", "onPause执行了");
        }
    
        @Override
        protected void onStop() {
            super.onStop();
            Log.e("onStop", "onStop执行了");
            // 解绑service
            AppLifeTimeActivity.this.unbindService(myServiceConnection);
        }
    
        class MyServiceConnection implements ServiceConnection {
            @Override
            public void onServiceConnected(ComponentName arg0, IBinder arg1) {
                Log.e("info", "Service Connection Success");
            }
    
            @Override
            public void onServiceDisconnected(ComponentName arg0) {
                // TODO Auto-generated method stub
                Log.e("info", "Service Connection Filed");
            }
        }
    
    }


        完毕~


    展开全文
  • 字符串驻留是一种在内存中仅保存一份相同且不可变字符串的方法。 系统维护interned字典,记录已被驻留的字符串对象。 对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享该副本。长...

     

    字符串驻留机制(引用计数机制):

        字符串驻留是一种在内存中仅保存一份相同且不可变字符串的方法。
        系统维护interned字典,记录已被驻留的字符串对象。
        对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享该副本。长字符串不遵守驻留机制
        
        python的引用计数机制,并不是对所有的数字,字符串,它只对“  [0-9] [a-z] [A-Z]和"_"(下划线)  ”有效,当字符串中由其他字符比如“! @ # ¥ % -”时字符驻留机制是不起作用的。
     
    驻留适用范围:
    1. 字符串长度为0或1时,默认采用驻留机制;
    2. 字符串长度大于1时,且字符串中只包含大小写字母、数字、下划线(_)时,采用驻留机制;
    3. 对于[-5,256]之间的整数数字,Python默认驻留
    4. 字符串只在编译时进行驻留,而非运行时。Python是解释型语言,但是事实上,它的解释器也可以是理解为是一种编译器,它负责将Python代码翻译成字节码,也就是.pyc文件;
    5. 用乘法得到的字符串,如果结果长度 <=20且字符串只包含数字、字母大小写、下划线,支持驻留。长度>20,不支持驻留。这样的设计目的是为了保护.pcy文件不会被错误代码搞的过大。
     
    例子1:带下划线(_)
    >>> str1='sten_waves'
    >>> str2='sten_waves'
    >>> str1 is str2
    True
    >>> id(str1)
    2072034398512
    >>> id(str2)
    2072034398512

     

    例子2:带空格字符
    >>> str3='sten waves'
    >>> str4='sten waves'
    >>> str3 is str4
    False
    >>> id(str3)
    2072034399920
    >>> id(str4)
    2072034399856

    例子1与例子2可以看出,非数字、字符串、下划线(_)组成的字符串不会触发驻留。

     
     
    驻留时机:
    python中的驻留发生在compile_time,而不是run_time。
    >>> str1='sten'+'waves'  # compile_time
    >>> str1 is 'stenwaves'
    True
    
    >>> str3='sten'
    >>> str4=str3+'waves'
    >>> str4 is 'stenwaves'  # run_time
    False

     

    优缺点:
    • python标识符的不可变性导致了字符串的改动不是采用replace,而是重新创建对象。为了节省内存,设计字符串的改动通常用join()而非+,因为+会多次创建对象,而join()只创建一次对象。
    • 驻留机制会提升一些时间和空间上的性能,但驻留对象也有所消耗。
     
    注:
    1、Pyhton提供intern方法强制2个字符串指向同一个对象
    >>> import sys
    >>> a="a*&&"
    >>> b="a*&&"
    >>> a is b
    False
    >>> a=sys.intern(b)
    >>> a is b
    True
    

    2、Python中整型对象存储的位置

    在python中,整形对象存储的位置有所不同,有些整形是预先分配的,一致在内存里,而其他的则在使用时开辟空间。

    对于[-5,256]之间的整数数字,Python默认驻留,即预先在内存中分配

     
     

    参考:

    https://blog.csdn.net/stenwaves/article/details/81879668 Python中的字符串驻留机制

    https://www.jianshu.com/p/9660f399ac98  Python的字符串驻留机制

    https://blog.csdn.net/weixin_43336281/article/details/106053852  理解Python中整型对象存储的位置

     

     

     

    展开全文
  • 摘要:在本文中,我们将深入研究 Python 的内部实现,并了解 Python 如何使用一种名为字符串驻留(String Interning)的技术,实现解释的高性能。 每种编程语言为了表现出色,并且实现卓越的性能,都需要有大量...
  • python的字符串驻留

    千次阅读 2017-08-14 13:37:08
    一、 字符串驻留定义 在维基百科中是这样解释的: In computer science, string interning is a method of storing only one copy of each distinct string value, which must be immutable.Interning strings ...
  • 轨迹中的驻留点计算

    千次阅读 2016-07-26 14:16:00
    其中关于时间的验证,使用了上一篇文章中的时间工具js,设备的轨迹是用一个点数组来表示的,驻留点也是一个点的数组。 function checkDistance(pointArrayBeforenowPoint,nowPoint,stayDistance){ var pf=poi.....
  • Tableau开始试用期后的破解方法

    万次阅读 2019-08-07 13:53:20
    若上文中的破解方法无效,或Tableau已经开始试用期倒计时,可使用时光驻留器定住试用时间。 操作方法如下: 安装完成后在激活页面,选择“立即开始试用”,按提示输入注册信息,不需真实但需符合格式要求。 注册...
  • PE文件感染和内存驻留

    千次阅读 2013-03-12 22:57:46
    例如,内存驻留、EPO(入口点模糊)技术、加密技术、多态和变形等。通过这些高级技巧,你将进一步感受到病毒技术的精华,从而更好的享受其中精妙的思想与编程技艺。  在解决了起始目录的问题之后,就可以从这些...
  • C#中字符串的内存分配与驻留池 作者: cyoooo7 来源: 博客园 发布时间: 2011-07-05 16:31 阅读: 2246 次 推荐: 2 原文链接 [收藏]  摘要:当有多个字符串变量包含了同样的字符串实际值时,CLR可能...
  • 用汇编编写DOS下的内存驻留程序

    千次阅读 2011-08-01 15:33:26
    0.1 内存驻留与中断 内存驻留程序英文叫Terminate and S 绪言 0.1 内存驻留与中断 内存驻留程序英文叫Terminate and Stay Resident Program,缩写为TSR.这些程序加载进内存,执行完后,就驻留在内存里,当
  • 问题描述 ...该方法本来是wpsoffice软件包里wps官方写在某个文件(时间久远,忘记在哪了,现在貌似找不到了)中的禁用后台驻留进程的方法,并且官方声明:该方法在解决驻留进程的同时,也会导致wpsoff...
  • 进程工作集指“在某- -段时间间隔内进程运行所需访问的页面的集合”。 在进程执行期间可以容易地确定该进程对存储空间的需求,也就是它的工作集尺寸。操作系统可以用这种方法决定给谁分配更多的帧,以及哪个进程...
  • Android 9.0将禁止开发者使用非官方API吊炸天!74款APP完整源码!Android View进阶之实现仿支付宝手势密码自定义View来自:程序师http://www.techug.com/post/app-awakening-in-android.html和iOS相比,安卓是一个...
  • 学了C#有段时间了,居然不知道这个。。。 我们都知道C#中的有个(Intern Pool)驻留池,当初居然认为所有的字符串都会存放在此。前两天看了书才知道没那么简单。 1. 驻留池由CLR来维护,其中的所有字符串对象的值都...
  • 在实际工作当中,有时候需要计算某个进程的cpu使用率或者是内存使用率。 下面将介绍一种linux中计算某个指定进程的cpu使用率和内存使用率的方法
  • INT 21H 指令说明及使用方法

    万次阅读 多人点赞 2018-04-13 11:35:56
    30 取DOS版本号 AH=发行号,AL=版本 31 结束并驻留 AL=返回码 DX=驻留区大小 33 Ctrl-Break检测 AL=00 取状态 =01 置状态(DL) DL=00 关闭检测 =01 打开检测 DL=00 关闭Ctrl-Break检测 =01 打开Ctrl-Break检测 35 取...
  • iCloud的使用方法

    千次阅读 2017-12-08 16:26:19
    这时候可以去到 metaQuery 的 results 属性,代表我们查找到的文件元信息列表, 最后使用 item.valueForAttribute(NSMetadataItemURLKey) 这样方法就可以得到包括文件 URL,文件尺寸,修改时间这些信息了。...
  • 双进程守护,驻留,杀不死服务

    千次阅读 2016-07-19 09:33:51
    此时如果你想在自己的application里面复写attachBaseContext方法的话,发现他已经被写为final,因为我们需要抢时间,所以必须保证进程进入先加载Marsdaemon,如果你想在attchBaseContext中做一些事情的话,可以复写...
  • 【汇编】TSR内存驻留程序实现与删除及热键...尤其是TSR删除这一块几乎找不到在低的水平完全正确的做法,下面我对于TSR的删除我会介绍一种几乎小程序可以完成的方法。当然,标题中的TSR实现,热键设置我也会一一介绍。
  • App 启动时间优化方法详解

    千次阅读 2017-11-24 15:53:31
    本文将讨论如何优化应用的启动时间,首先我们需要了解app启动的相关内容。 App 启动模式分类 应用中冷启动避免白屏、黑屏方案 Framework 层解决冷启动白屏、黑屏方案 App 启动优化原理 App 启动优化简介 Ap.....
  • 列表生成及其方法

    千次阅读 2018-03-24 14:04:34
    2.1列表转化生成器方法一迭代: iter(*) li = [ 1 , 2 , 3 , 4 ] print type ( li ) g = iter(li) print type ( g ) 执行结果li列表被转化生成g了 < type 'list' > < type '...
  • java finalize方法使用

    万次阅读 2017-03-21 10:18:29
    Java提供finalize()方法,垃圾回收准备释放内存的时候,会先调用finalize()。  (1).对象不一定会被回收。  (2).垃圾回收不是析构函数。  (3).垃圾回收只与内存有关。  (4).垃圾回收和finalize()都是靠不住...
  • Java finalize方法使用

    万次阅读 多人点赞 2011-08-21 11:37:38
    《JAVA编程思想》: ...java提供finalize()方法,垃圾回收准备释放内存的时候,会先调用finalize()。  (1).对象不一定会被回收。  (2).垃圾回收不是析构函数。  (3).垃圾回收只与内存有关。
  • 要对进程进行监测和控制,首先必须要了解当前...使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。
  • 使用Intern方法的好处在于,如果Intern方法驻留池中找到了相同值的字符串,此时虽然在内存中存在两份该字符串的副本(一份是参数,一份是驻留池中的),但是随着时间的流逝,参数所引用的那个副本会被垃圾回收掉...
  • App 启动时间优化方法详解   用户希望APP 能够快速响应并加载。 一个启动速度慢的APP 不符合用户期望,可能会令用户失望,并且可能会导致用户对您的应用程序评价不佳,甚至会卸载你的应用。 本文将讨论如何优化...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,190
精华内容 20,476
关键字:

时间驻留器使用方法