RDS WS2012R2 and "Client Side rendering"

Hello,
Is it normal that the CSR key continues to populate even if the CSR is disabled (verified with 'Get-Printer -Full |fl')?
BTW winprint is used for all the printers on the print servers, and non-microsoft monitors are deleted.
Thx,
Ludovic H.

Hi,
Thank you for posting in Windows Server Forum.
If you disable this policy setting on a client computer, the client itself will process print jobs into printer device commands. These commands will then be sent to the print server, and the server will simply pass the commands to the printer. This increases
the workload of the client while decreasing the load on the server. If you do not enable this policy setting, the behavior is the same as disabling it.
This policy does not determine whether offline printing will be available to the client. The client print spooler can always queue print jobs when not connected to the print server. On reconnecting to the server, the client will submit any pending print jobs.
In cases in which the client print driver does not match the server print driver (mismatched connection), the client will always process the print job regardless of the setting of this policy.
More information.
1. Disable Client-Side Printer Rendering
2. Known Issues with Client-Side Rendering
Hope it helps!
Thanks.
Dharmesh Solanki
TechNet Community Support

Similar Messages

  • Client-side Rendering and AIX

    Group,
    We're running a Server 2008 R2 Print Server.  Does anyone know if the Client-side Rendering option has any "gotchas" when receiving jobs from an AIX server?
    Thanks,
    Jason
    Jason Riker

    Nope.  I assume the AIX machine renders the docs there so there is no Server Side Rendering required.
    This is a setting on the machine sharing the printer that lets Windows Vista and greater clients know they need to render the document. XP and non Windows machine have no clue about this setting.
    Alan Morris formerly with Windows Printing Team

  • Client Side Rendering Yes or No

    Good Day,
    We have a RDS2012 R2 environment. We were not able to use the Easy Print Driver due to speed and now our printing environment is:
    1. All printers installed and shared off a W2k12 R2 File and Print server
    2. Appropriate printers are mapped via Group Policy upon a user starting an RDS session.
    This is working much faster than we were using the Easy Printer Driver, but I am wondering if it could be faster yet if we turn off Client Side Rendering which is on the Sharing Tab (Printer Properties) of the shared printer?
    Steve J.

    About 70 printers shared off of the file and print server, but that is the only thing that server is doing. I would rather have it do as much work as possible and leave the RDS servers to do their applications. Did I just answer my own question?
    If the end users are all WAN end users, yet the RDS servers and Print server are on the LAN, does either of these options mean more or less WAN traffic?
    Steve J.
    I think you did. :)
    As I understood it you aren't using any printer redirection, all printers are mapped in the session. If all end users are WAN users shouldn't matter since they connect to  a RDS Server and all printing is either happening on RDS Server or Print Server. 

  • Client Side Rendering on Terminal Servers

    I’m having horrible printer issues on my Terminal Servers such as slow printing, slow to add printers, some applications load slowly because they are enumerating the list of printer (thanks Procmon), slow logons, etc. I'm trying to get Client Side Rendering
    (CSR) disabled. From what I can tell it still appears to be on. Terminal Server are Windows Server 2008 SP2 x86.
    On my print servers I have verified that all printers have Render print jobs on client computer unchecked. I have a Group Policy linked to the OU that the Terminal Servers are in that has
    Always render print jobs on the server set to enabled. Per
    http://blogs.technet.com/b/askperf/archive/2008/02/10/ws2008-client-side-rendering.aspx I have verified that on each Terminal Server in
    HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Printers the
    ForceCSREMFDespooling value is present & set to 1 so the GP is being applied.
    However I still have tons of entries in HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider\Servers\<SERVERNAME>\Printers.
    I have found KB958656 which seems to describe my problem that CSR is not being disabled. However one of the files it updates is older than a file that I have (win32spl.dll) & one is newer (printcom.dll).
    Printcom.dll in hotfix is 6.0.6001.22288 mine is 6.0.6001.18000
    Win32spl.dll in hotfix is 6.0.6001.22288 mine is 6.0.6002.18005
    Has anyone else seen this behavior & been able to get CSR disabled?
    Has anyone else had success with the KB hotfix mentioned or know whether or not installing it would causing any issues (since it has that older file)?
    Thanks in an advance to any input.
    Patrick Hoban
    http://patrickhoban.wordpress.com

    Alan/Patrick,
    Hi, sorry, went away on leave for a while so didn’t respond.
    Alan – our case was REG:112081612189183.
    For someone who has been dealing with MS support for about 20 years, this was the most disappointing of any support call I’ve ever had raised – to have the call shut
    down, without a perfmon trace, process explorer analysis, or hang dump analysis (of spooler) – and simply blame “3<sup>rd</sup> party drivers” without any proof – is utterly deplorable.
    Anyway, for anyone’s benefit who has similar problems – trying to do direct printing from RDS – I’ve managed to get a solution working. 
    Here are the details;
    A nightly print spooler clean-up script that;
    Stops the spooler
    Deletes the entire key under “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider”
    Re-creates the key (empty) and sets the value "RemovePrintersAtLogoff"=dword:00000000
    Note, this was vital. 
    MS support had recommended we set this to 1, along with some other keys (InactiveGuidPrinterAge, 
    InactiveGuidPrinterTrim) with specific values.  If we used these MS support recommended values, our RDS serer would not enumerate printers for more than 3-4 hours before requiring a restart of the spooler.
    Restart the spooler
    Map a printer (just to make sure it works)
    Clean up the USERS\.DEFAULT\Printers key on all existing servers
    There was heaps of crap here, the default user NTUSER.DAT was over 800MB in size
    Modify the security on the registry, using GPO to deny SYSTEM write access as below, to stop the crap writing here again;
    USERS\.DEFAULT\Printers
    Deny Set value
    Deny Create Subkey
    Run NGREGOPT on all servers to compress the DEFAULT and SOFTWARE hives back down.
    Even though we had deleted the crap from “Client Side Rendering Print Provider” and the DEFAULT user hive, the registry files were still large of course, and needed to be compressed to reduce
    paged pool usage.
    Note, make sure no users are on the server when this is run !
    With the nightly spooler ‘refresh’ and the registry security changes, we are no longer seeing any problems. 
    In addition the paged pool has gone down from 5GB to 1GB – which I believe was related to the registry bloat that had occurred previously. 
    Cleaning up the keys and using NGREGOPT has fixed this.
    In addition, I am running a spooler check script every 30 minutes on each of the 13 servers. 
    This script checks how long it takes to enumerate the printers for the specific test user. 
    If it takes more than 20 seconds, we get an alert.
    Since I have made the changes above, we no longer have any printing problems… touch wood.. even using HPD 5.4 for most printers, and other (RICHO) 3<sup>rd</sup> party
    drivers.
    If anyone wants the scripts (the spooler refresh or the check script) let me know on david.frith<at>glfconsulting.com.au
    ta

  • Show the Read more link in the list view webpart using Client side Rendering

    Hi,
    I have a share point list name as Team.It contains two columns like Role(single line of text) and Name( people and picker).
    I want the display the list view webpart like below format using JS Link/Client side rendering concept.
    If list contains more than 3 items (display like this)
    >TeamMemberName1
    >TeamMemberName2
    >TeamMemberName3
    Readmore... (Read more link should expand all the team members)
    If list contains more than 3 items (display like this)
    >TeamMemberName1
    >TeamMemberName2
    >TeamMemberName3
    Could you please provide the code.It is very urgent for me.
    Thanks for the help!!!

    (function () {
        debugger;
        //Create our Namespace object to avoid polluting the global namespace
        var pfh = pfh || {};
        //Define our Header Render pattern
        pfh.renderHeader = function (ctx) {
            var headerHTML = "<ul>";
            return headerHTML;
        pfh.renderFooter = function (ctx) {
            //Define any footer content here.
            var footerHTML = "</ul>";
            return footerHTML;
        pfh.CustomItem = function (ctx) {
            var itemHTML = "<li>" + ctx.CurrentItem.TeamMemberName[0].title; + "</li>";
            return itemHTML;
        //Define any code/function that needs to be run AFTER the page has been completed and the DOM is complete.
        pfh.PostRenderCallback = function (ctx) {
        //Define the function that will register our Override with SharePoint.
        pfh.RegisterTemplateOverride = function () {
            var overrideCtx = {};
            overrideCtx.Templates = {};
            overrideCtx.Templates.Header = pfh.renderHeader;
            overrideCtx.Templates.Footer = pfh.renderFooter;
            overrideCtx.Templates.Item = pfh.CustomItem;
            overrideCtx.onPostRender = [pfh.PostRenderCallback(ctx)];
            overrideCtx.BaseViewID = 98; //Note: We're using BaseView ID 99 to match our override below
            overrideCtx.ListTemplateType = 100;
            SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);
        //Now we load in our override to ensure that this Override is only applied to the intended ListView
        ExecuteOrDelayUntilScriptLoaded(function () {
            var OldRenderListView = RenderListView;
            RenderListView = function (ctx, webPartID) {
                if (ctx.ListTitle == "Test") {
                    ctx.BaseViewID = 98;
                OldRenderListView(ctx, webPartID)
        }, 'ClientTemplates.js');
        //Register for MDS enabled site otherwise the display template doesn't work on refresh
        //Note: The ~sitecollection tokens cannot be used here!
        RegisterModuleInit("/_catalogs/masterpage/Display Templates/csr_ovr_RenderListTemplate_Fixed.js", pfh.RegisterTemplateOverride); // CSR-override for MDS enabled site
        pfh.RegisterTemplateOverride(); //CSR-override for MDS disabled site (because we need to call the entry point function in this case whereas it is not needed for anonymous functions)
    I am using the above script to render the items.
    I am new to the CSR.
    Where do i need to include your script in my script.
    Please help on this.
    Thank you for reply sagar.
    Please note that i am not using content search webpart.

  • Passing parameters between server and client side

    Dear All
    I writing a server-side web service and using wsdl to expose its methods for a 'client' to use.
    However, i need to make sre the clients creates a soap header? How can i tell the client it must create a soap header?
    Also can someone tel me how i pass a value from the server-side to the client-side and also get a vlue from the client soap message
    Many thanks

    In your wsdl you would have the header as part of the input for example, see the operation below:
    <wsdl:operation name="foo">
    <soap:operation soapAction="http://www.foobar.com/foo" style="document"/>
      <wsdl:input>
       <soap:body use="literal"/>
       <soap:header message="tns:FooSoapHeader" part="MySoapHeader" use="literal"/>
      </wsdl:input>
      <wsdl:output>
       <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>

  • ACE30 - PING to VIP and Client side SVI not working

    Hi Guys,
    Having setup the ACE30 based on the configuration guides, I've been able to get basic load balancing working, probes, stickness etc.  However in testing connectivty, I've noticed that from the real server on the backend I cannot seem to PING:
    1. The VIP for the web service that the server is a part of
    2. The Client side SVI
    I'd like this to work to ensure full connectivity.
    I've applied ACLs to the Client side SVI (on the ACE) to allow this in both directions, and also removed any ACLs attached to the client side SVI on the MSFC where the subnet is actually homed.  However I just cannot seem to PING the Client side SVI on the ACE, or the VIP.  Trying to understand if this is normal behavior.
    Have inserted my config below for completeness.
    ACE30 Config
    login timeout 60
    hostname ACE1
    boot system image:c6ace-t1k9-mz.A90_6_3_5.bin
    boot system image:c6ace-t1k9-mz.A4_1_0.bin
    resource-class RC_1
      limit-resource all minimum 10.00 maximum unlimited
    access-list all line 8 extended permit ip any any
    access-list v6-any line 8 extended permit ip anyv6 anyv6
    class-map type management match-any REMOTE_ACCESS
      description Remote access traffic match
      2 match protocol telnet any
      3 match protocol ssh any
      4 match protocol icmp any
      5 match protocol https any
    policy-map type management first-match REMOTE_MGMT_ALLOW_POLICY
      class REMOTE_ACCESS
        permit
    interface vlan 768
      description Management connectivity
      ip address 10.20.40.72 255.255.255.0
      service-policy input REMOTE_MGMT_ALLOW_POLICY
      no shutdown
    ip route 0.0.0.0 0.0.0.0 10.20.40.254
    context VC_1
      allocate-interface vlan 11
      allocate-interface vlan 186
      member RC_1
    username admin password 5 $1$STizNv5q$i96.Qrt4C4SfHkbLyVT74.  role Admin domain default-domain
    username www password 5 $1$ZAn8bOtv$xmmNlH8akF6iYfXdQCKMo1  role Admin domain default-domain
    ssh key rsa1 1024 force
    ! VC_1
    ACE1/VC_1# sh run
    probe http HTTP_PROBE1
      interval 15
      passdetect interval 60
      expect status 200 200
      open 1
    rserver host RS_MONASH_WEB1
      description Test Monash Web Server 1
      ip address 10.194.27.177
      inservice
    serverfarm host SF_MONASH_WEB
      probe HTTP_PROBE1
      rserver RS_MONASH_WEB1 80
        inservice
    sticky ip-netmask 255.255.255.255 address source STICKY_MONASH_WEB
      timeout 3600
      serverfarm SF_MONASH_WEB
    class-map type management match-any REMOTE_ACCESS
      description Remote access traffic match
      2 match protocol ssh any
      3 match protocol telnet any
      4 match protocol icmp any
      5 match protocol https any
    class-map match-all VS_MONASH_WEB
      2 match virtual-address 10.194.11.1 tcp eq www
    access-list ALLOW_TRAFFIC_TOWARDS_ACE extended permit ip any any
    access-list ALLOW_TRAFFIC_TOWARDS_ACE extended permit icmp any any
    policy-map type management first-match REMOTE_MGMT_ALLOW_POLICY
      class REMOTE_ACCESS
        permit
    policy-map type loadbalance first-match PM_MONASH_WEB_LB
      class class-default
        sticky-serverfarm STICKY_MONASH_WEB
    policy-map multi-match PM_MULTI_MATCH_CLIENT_VIP
      class VS_MONASH_WEB
        loadbalance vip inservice
        loadbalance policy PM_MONASH_WEB_LB
    service-policy input REMOTE_MGMT_ALLOW_POLICY
    interface vlan 11
      description Client connectivity on Vlan 11
      ip address 10.194.11.250 255.255.255.0
      access-group input ALLOW_TRAFFIC_TOWARDS_ACE
      access-group out ALLOW_TRAFFIC_TOWARDS_ACE       ! not sure if this is required as well?
      service-policy input PM_MULTI_MATCH_CLIENT_VIP
      no shutdown
    interface vlan 186
      description CSM www monash
      ip address 10.194.27.189 255.255.255.240
      access-group input ALLOW_TRAFFIC_TOWARDS_ACE    ! not sure if this is required?
      access-group out ALLOW_TRAFFIC_TOWARDS_ACE      ! not sure if this is required?
      ip dhcp relay server 130.194.15.17
      ip dhcp relay server 130.194.15.1
      ip dhcp relay enable
      no shutdown
    ip route 0.0.0.0 0.0.0.0 10.194.11.254
    6500s
    ! test-clay1-gw - ACE connects to this 6500
    svclc multiple-vlan-interfaces
    svclc module 2 vlan-group 2
    svclc vlan-group 2  11,171-499,768
    ! test-clay0-gw - Where Client side subnet, VLAN11 is homed
    interface Vlan11
    description Testlab server subnet
    ip address 10.194.11.253 255.255.255.0
    no shut
    ip route 10.194.27.176 255.255.255.240 10.194.11.250
    thanks
    Sheldon

    To ping your VIP of the webserver, you should apple the service-policy input command on VLAN 186 too. Currently the VIP only listens on VLAN 11. For the SVI i think that was forbidden by security reason, but i cant remember anymore. Maybe you just need to put the management policy on the interface VLAN 186. If it dont work, then my first guess was right

  • Difference between SERVER and CLIENT side conflicts?

    Some sync conflicts (ApplyChangeFailed event) are generated on the server side (WCF service in my case) and some are generated on the client side ... what triggers the conflict
    to be generated on one side or the other?

    the ApplyChangeFailed is fired by the provider that's applying the change.
    When you upload, it fires on the destination/remote provider.
    when you download, it's your local provider applying the change.

  • Disable Client Side Rendering on 2008 R2

    Hi guys, I have the following:
    several 2008 R2 RDS servers
    connecting to queues on a windows 2008 SP2 x64 print server
    print queues running the HP Universal Print Driver v 5.3
    I'm trying to offload rendering to the beefy print server. To test this, I setup a test queue using the HP UPD and turned of the 'Render Print Jobs on Client Computer' setting on the queue. I paused the queue and did the following:
    connected to the test queue
    printed several jobs
    examined the spool file sitting in the paused queue
    Now when I look at the properties of the job in the paused queue it says it is in RAW format which would indicate to me that CSR is still in place. If I use the Citrix Universal Printer the job is sent in EMF (as the CPUD cannot use CSR). I then tried to
    disable CSR using group policy on the RDS servers but the same results. Can anyone offer an explanation on this?

    Not MS bashing as I love what you guys do :)
    I guess we could look at using device specific drivers for our HP MFPs but both the implementing vendor and HP recommended the HP UPD which we use exclusively accross all the HP MFPs we have and have no issue with printing which is great. In our old RDS/Citrix
    implementation we had 100+ drivers and they were a nightmare (mostly due to the fact our RDS Servers were 2003 with some kernel mode drivers and no print host isolation) so I'd hate to go back to that setup. Also, the device specific drivers might not opt
    in either meaning I'd be getting CSR anyways. We notice for some other vendors that disabling CSR returns a good chunk of CPU cycles to the RDS servers that can be used for the users apps whilst our beefy print servers handles the driver specific stuff. I'll
    try and chase up with HP but I cannot believe they would not document this 'design'  in the UPD guide. CSR great for single user PCs but not for multi-user RDS servers in my (albeit limited) experience.

  • Client Side Rendering in List Display Form

    I would like to use CSR to customise a list display form.
    I can't seem to find any examples where people have done anything more than alter how a particular field is rendered in a display/new/edit form.  I would like to do things like alter the header, footer, the order in which the columns are displayed and
    the layout of the form overall itself.
    Playing around I notice that when I change the "CSR Render Mode" for a display form web part to "Custom (CSRCustomLayout)" the Header and Footer events fire, but then the form seems to output the labels (with no data next to them) and
    then then dumps all the data after the labels.
    Also the pre and post render methods also do not fire unless it is in Custom layout mode.  Putting it back to Standard only runs the field level override.
    What is the correct way to go abou this?  What are those CSR Render Modes for?
    Thanks,
    Richard

    Richard,
    Take a look at this part from Martin Hatch's developer series on List views. He covers off the new and edit forms in this one.
    http://www.martinhatch.com/2013/08/jslink-and-display-templates-part-3.html
    Paul.
    Please ensure that you mark a question as Answered once you receive a satisfactory response. This helps people in future when searching and helps prevent the same questions being asked multiple times.

  • Error State Id 11756 and Client side Scan Agent.log file shows with Error=0x8024400d

    We 1500 clients which managed through SCCM 2007. out of 1500 workstations 300 are showing failed to install updates with following error code from scanagent.log. Also the error state messge id is 11756
     -Scan Failed for ToolUniqueID={CACC0F54-E6B6-40AA-8BCD-81A1C7BE2918}, with Error=0x8024400d
    Error From WUAHanlder.log
    OnSearchComplete - Failed to end search job. Error = 0x8024400d.
    I searched over google for this issue and found some thing related with Group policy, but there is no exact cause and solution found for this. Could you please some one help me on this.

    1. On the affected machine, disable the SCCM Agent. To do this, you can run the following commands:
    Disable the Service --> sc config CcmExec start= disabled
    Stop the Service  net stop CcmExec
    2. Ensure that the following policy is not enforced on the system:
    User Configuration\Administrative Templates\Windows Components\Windows Update\Remove access to use all Windows Update Features
    Check this first in the local system policy (you can pull this up using gpedit.msc – Local Group Policy Editor). After that, please run RSOP.msc and ensure that the policy is not configured either. This will give you information from domain policies too.
    If the policy is enabled please either remove the policy or disable it.
    3. Restart the Automatic Updates service.
    4. Now, from the command line, run the following command:
    Configure Proxy  proxycfg.exe –p “WSUS SERVER FQDN”
    By doing this, we are configuring WinHTTP so that server access in upper case is also bypassed.
    At this point, we need to test an update scan. Since the SMS Host Agent service is disabled and stopped, we won’t be able to use the agent to run the scan. In this case, we would need to run a scan using the command below:
    wuauclt /resetauthorization /detectnow
    Check Windowsupdate.log for the outcome of the testing
    How to Bypass Proxy server for testing purpose using proxycfg untility. (More details http://msdn.microsoft.com/en-us/library/windows/desktop/ms761351(v=vs.85).aspx). Also find the registry entries you can check for bypass list – “HKEY_LOCAL_MACHINE\
    SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\” .
    RanzHat

  • Using RDS on the client side

    I'm looking into implementing a thin client solution in our small office but I'm still trying to wrap my head around it a little.
    If I have a server with Windows 2012-R2 or 2008-R2, with the Remote Desktop Services role installed, and I have a computer, what do I install on the computer in order to turn it into essentially a dumb terminal and just run everything (including the desktop)
    on the server?
    Would I use Windows embedded for this?

    You would use a remote desktop client installed on the client machines. This comes by default with Windows. If you already have Windows based desktop computers, you can just initiate the RDP session from those computers. If not, you could look at the different
    thin client machines available from the various manufacturers.
    CRM Advisor

  • Sharepoint 2013: How can I use custom filter in XsltListViewWebPart if client site rendering ?

    I wish text box on SitePage where I can input filter value  and XsltListViewWebPart will show items corresponding of my input filter.
    If server rendering I have Filter button in SPD and create parameter that bind my TextBox to Filter.
    But how to must I doing if client side rendering (CSR) ? I haven't Filter button in SPD...    

    So, I resolved it :)
    1) SPD2013 will show "Parameters" and "Filter" buttons for web part, if you click web part properties, change something and save it in SPD2013. After this dumb operation SPD2013 will show additional context menu for web part that include
    "Parameters" and "Filter" buttons. Don't ask me why  :)
    2) All filter work for list - server side, same as in SharePoint 2010. You may add parameter to web part and link filter with this parameter.
    3) Client side rendering will work with ready filtered data only. If you need update filter ->  __doPostBack (POST request)  and server side will back new filtered scope.    AJAX properties may be used to avoid
    all page redrawing.
    4) Yes, you may have additional filter on client side by override onPreRender and simply delete some records from ListData.Row but:
    - it will not affected by header XSLTListView filters
    - data page portions will be working incorrect
    - grout data will be incorrect too
    5) The worst thing it is, even I wish use client side filter in onPreRender I haven't found way how to re-render list without postback request to server. It is mean I can't apply new filter without new request to server :( Even I keep all list data
    as JSON on page. Of cause I can realize it with my own custom gridview but it will need  more effort and will be not so powerfull as use XSLTListWebPart...  

  • Client side event for h:outputText... and other JSF component

    Hello friends...
    I need client side (to use Java script ) event for change in <h:outputText /> or <h:inputText...>.
    I want to open a popup window when there is a change in there. I donot want to use onblur() for this. Is there any thing for achiev it.
    Thanks.
    Regard
    Roshan Lal ( I don't know why there is "DOG" display in LIST )
    :-)

    Hi Jacek,
    Unfortunately I think you may be stuck extending Renderer. Another possibility is creating your component via a template, which will be available in JSF 2.0. However, as JSF 2.0 won't be out for a while... you can use JSFTemplating in the meantime:
    http://java.sun.com/developer/technicalArticles/J2EE/jsf_templating/
    http://www.theserverside.com/tt/articles/article.tss?l=JSFTemplateComponent
    Good luck!
    Ken Paulsen
    https://jsftemplating.dev.java.net

  • Problem in creating client side PDF with image using flex and AlivePD

    I need a favor I am creating client side PDF with image using flex and AlivePDF for a web based application. Images have been generated on that pdf but it is creating problem for large size images as half of the image disappeared from that pdf.I am taking the image inside a canvas . How do i control my images so that they come fit on that pdf file for any image size that i take.
    Thanks in advance
    Atishay

    I am having a similar and more serious problem. It takes a
    long time to execute, but even attaching a small image balloons the
    pdf to 6MB plus. After a few images it gets up to 20MB. These are
    100k jpeg files being attached. The resulting PDF is too large to
    email or process effectively. Does anyone know how to reduce
    size/processing?

Maybe you are looking for